{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lesson 10 - Numpy, Pandas and Matplotlib Crashcourse\n",
    "\n",
    "Here will introduce Numpy, Pandas, and Matplotlib. Numpy is the core numerical computing package in Python, and its core type is ndarray. Pandas uses DataFrames (tables, much like R DataFrames) and Series (columns of a DataFrame) with powerful SQL-like queries. Matplotlib is a package for plotting, which uses a MATLAB-style syntax.\n",
    "\n",
    "### Readings\n",
    "\n",
    "* Pratik: [Introduction to Numpy and Pandas](https://cloudxlab.com/blog/numpy-pandas-introduction/)\n",
    "\n",
    "### Table of Contents\n",
    "\n",
    "* [Numpy](#numpy)\n",
    "* [Pandas](#pandas)\n",
    "* [Matplotlib](#matplotlib)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=\"numpy\"></a>\n",
    "\n",
    "### Numpy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Today we will work with several new packages and the data types they provide: the Numpy `ndarray` and the Pandas `Series` and `DataFrame`. These data types have many of the properties of `list` but are much more powerful.\n",
    "\n",
    "The `numpy` package (module) is used in almost all numerical computation using Python. It is a package that provides high-performance vector, matrix and higher-dimensional data structures for Python. It is implemented in C and Fortran so when calculations are vectorized (formulated with vectors and matrices), performance is very good. \n",
    "\n",
    "To use `numpy`, you need to import the module:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Creating Numpy arrays\n",
    "\n",
    "There are a number of ways to initialize new Numpy arrays, for example from\n",
    "\n",
    "* converting from Python lists or tuples\n",
    "* using functions that are dedicated to generating numpy arrays, such as `arange`, `linspace`, etc.\n",
    "* reading data from files\n",
    "\n",
    "##### From lists\n",
    "\n",
    "For example, to create new vector and matrix arrays from Python lists we can use the `numpy.array` function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# a vector: the argument to the array function is a Python list\n",
    "v = np.array([1,2,3,4])\n",
    "v"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 4]])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# a matrix: the argument to the array function is a nested Python list\n",
    "M = np.array([[1, 2], [3, 4]])\n",
    "M"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `v` and `M` objects are both of the type `ndarray` that the `numpy` module provides."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(numpy.ndarray, numpy.ndarray)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(v), type(M)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The difference between the `v` and `M` arrays is only their shapes. We can get information about the shape of an array by using the `ndarray.shape` property."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4,)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 2)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The number of elements in the array is available through the `ndarray.size` property:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M.size"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Equivalently, we could use the function `numpy.shape` and `numpy.size`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 2)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.shape(M)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.size(M)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So far the `numpy.ndarray` looks a lot like a Python list (or nested list). Why not simply use Python lists for computations instead of creating a new array type? \n",
    "\n",
    "There are several reasons:\n",
    "\n",
    "* Python lists are very general. They can contain any kind of object. They are dynamically typed. They do not support mathematical functions such as matrix and dot multiplications, etc. Implementating such functions for Python lists would not be very efficient because of the dynamic typing.\n",
    "* Numpy arrays are **statically typed** and **homogeneous**. The type of the elements is determined when array is created.\n",
    "* Numpy arrays are memory efficient.\n",
    "* Because of the static typing, fast implementation of mathematical functions such as multiplication and addition of `numpy` arrays can be implemented in a compiled language (C and Fortran is used).\n",
    "\n",
    "Using the `dtype` (data type) property of an `ndarray`, we can see what type the data of an array has:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('int64')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M.dtype"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "We get an error if we try to assign a value of the wrong type to an element in a numpy array:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "#M[0,0] = 'hello'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "M[0,0] = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5, 2],\n",
       "       [3, 4]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "If we want, we can explicitly define the type of the array data when we create it, using the `dtype` keyword argument: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.+0.j, 2.+0.j],\n",
       "       [3.+0.j, 4.+0.j]])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "N = np.array([[1, 2], [3, 4]], dtype=complex)\n",
    "N"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Common types that can be used with `dtype` are: `int`, `float`, `complex`, `bool`, and `object` (string).\n",
    "\n",
    "We can also explicitly define the bit size of the data types, for example: `int64`, `int16`, `float128`, `complex128`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Using array-generating functions\n",
    "\n",
    "For larger arrays it is inpractical to initialize the data manually, using explicit pythons lists. Instead we can use one of the many functions in `numpy` that generates arrays of different forms. Some of the more common are:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1.00000000e+00, -9.00000000e-01, -8.00000000e-01, -7.00000000e-01,\n",
       "       -6.00000000e-01, -5.00000000e-01, -4.00000000e-01, -3.00000000e-01,\n",
       "       -2.00000000e-01, -1.00000000e-01, -2.22044605e-16,  1.00000000e-01,\n",
       "        2.00000000e-01,  3.00000000e-01,  4.00000000e-01,  5.00000000e-01,\n",
       "        6.00000000e-01,  7.00000000e-01,  8.00000000e-01,  9.00000000e-01])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create a range (the end value is not included)\n",
    "x = np.arange(-1, 1, 0.1) # arguments: start, stop, step\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('float64')"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# dtype is determined automatically unless specified\n",
    "x.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# range of integers\n",
    "y = np.arange(0, 10, 1) # arguments: start, stop, step\n",
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('int64')"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# specifying dtype as float\n",
    "z = np.arange(0, 10, 1, dtype=float) # arguments: start, stop, step\n",
    "z"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('float64')"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "z.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# using linspace, both end points ARE included\n",
    "np.linspace(0, 10, 11) # arguments: start, stop, N"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# similar to meshgrid in MATLAB\n",
    "x, y = np.mgrid[0:5, 0:5] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, 0, 0],\n",
       "       [1, 1, 1, 1, 1],\n",
       "       [2, 2, 2, 2, 2],\n",
       "       [3, 3, 3, 3, 3],\n",
       "       [4, 4, 4, 4, 4]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 1, 2, 3, 4],\n",
       "       [0, 1, 2, 3, 4],\n",
       "       [0, 1, 2, 3, 4],\n",
       "       [0, 1, 2, 3, 4],\n",
       "       [0, 1, 2, 3, 4]])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.12880786, 0.60636065, 0.86974753, 0.28419983, 0.38860944],\n",
       "       [0.69805897, 0.16699759, 0.31276383, 0.44441055, 0.38253246],\n",
       "       [0.63838301, 0.79885951, 0.68377023, 0.00227035, 0.59627373],\n",
       "       [0.35434953, 0.9994197 , 0.35989762, 0.3030011 , 0.34821566],\n",
       "       [0.73796517, 0.93264766, 0.05262068, 0.93448082, 0.54141932]])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# uniform random numbers in interval [0,1]\n",
    "np.random.rand(5,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-1.35330802,  0.47324722, -2.13236995, -1.98684711,  0.2355745 ],\n",
       "       [ 0.68283338, -0.40993828, -0.19395475,  0.61798152, -0.65953511],\n",
       "       [-1.60418623, -0.37075073, -0.77192057, -0.4796445 ,  0.41430006],\n",
       "       [-0.97440728,  0.56709255, -0.03393057, -0.45195756, -1.19625215],\n",
       "       [ 1.06405603, -1.55795632,  0.03915339,  0.97039133, -0.11478593]])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# standard normal distributed random numbers\n",
    "np.random.randn(5,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 0, 0],\n",
       "       [0, 2, 0],\n",
       "       [0, 0, 3]])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# diagonal matrix\n",
    "np.diag([1,2,3])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0., 0., 0.],\n",
       "       [0., 0., 0.],\n",
       "       [0., 0., 0.]])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# zeros\n",
    "np.zeros((3,3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 1., 1.],\n",
       "       [1., 1., 1.],\n",
       "       [1., 1., 1.]])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ones\n",
    "np.ones((3,3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 1, 1],\n",
       "       [1, 1, 1],\n",
       "       [1, 1, 1]])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ones as int\n",
    "np.ones((3,3), dtype=int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[1., 1., 1.],\n",
       "        [1., 1., 1.],\n",
       "        [1., 1., 1.]],\n",
       "\n",
       "       [[1., 1., 1.],\n",
       "        [1., 1., 1.],\n",
       "        [1., 1., 1.]],\n",
       "\n",
       "       [[1., 1., 1.],\n",
       "        [1., 1., 1.],\n",
       "        [1., 1., 1.]]])"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# three-dimensional\n",
    "np.ones((3,3,3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]],\n",
       "\n",
       "        [[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]],\n",
       "\n",
       "        [[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]]],\n",
       "\n",
       "\n",
       "       [[[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]],\n",
       "\n",
       "        [[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]],\n",
       "\n",
       "        [[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]]],\n",
       "\n",
       "\n",
       "       [[[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]],\n",
       "\n",
       "        [[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]],\n",
       "\n",
       "        [[1., 1., 1.],\n",
       "         [1., 1., 1.],\n",
       "         [1., 1., 1.]]]])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# four-dimensional\n",
    "np.ones((3,3,3,3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Indexing\n",
    "\n",
    "We can index elements in an array using the square bracket and indices:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# v is a vector, and has only one dimension, taking one index\n",
    "v[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# M is a matrix, or a 2 dimensional array, taking two indices \n",
    "M[1,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3, 4])"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# If we omit an index of a multidimensional array it returns the whole row (or, in general, a N-1 dimensional array)\n",
    "M[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The same thing can be achieved with using `:` instead of an index: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3, 4])"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M[1,:] # row 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 4])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M[:,1] # column 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can assign new values to elements in an array using indexing:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-1,  2],\n",
       "       [ 3,  4]])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M[0,0] = -1\n",
    "M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "# also works for rows and columns\n",
    "M[0,:] = 0\n",
    "M[:,1] = -2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0, -2],\n",
       "       [ 3, -2]])"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Index slicing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Index slicing is the technical name for the syntax `M[lower:upper:step]` to extract part of an array:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4, 5])"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A = np.array([1,2,3,4,5])\n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 3])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A[1:3]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Array slices are *mutable*: if they are assigned a new value the original array from which the slice was extracted is modified:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1, -2, -3,  4,  5])"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A[1:3] = [-2,-3]\n",
    "A"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can omit any of the three parameters in `M[lower:upper:step]`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1, -2, -3,  4,  5])"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A[::] # lower, upper, step all take the default values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1, -3,  5])"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A[::2] # step is 2, lower and upper defaults to the beginning and end of the array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1, -2, -3])"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A[:3] # first three elements"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4, 5])"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A[3:] # elements from index 3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Negative indices counts from the end of the array (positive index from the begining):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "A = np.array([1,2,3,4,5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A[-1] # the last element in the array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([3, 4, 5])"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A[-3:] # the last three elements"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Index slicing works exactly the same way for multidimensional arrays:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  1,  2,  3,  4],\n",
       "       [10, 11, 12, 13, 14],\n",
       "       [20, 21, 22, 23, 24],\n",
       "       [30, 31, 32, 33, 34],\n",
       "       [40, 41, 42, 43, 44]])"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A = np.array([[n+m*10 for n in range(5)] for m in range(5)])\n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[11, 12, 13],\n",
       "       [21, 22, 23],\n",
       "       [31, 32, 33]])"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# a block from the original array\n",
    "A[1:4, 1:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  2,  4],\n",
       "       [20, 22, 24],\n",
       "       [40, 42, 44]])"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# strides\n",
    "A[::2, ::2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Fancy indexing\n",
    "\n",
    "Fancy indexing is the name for when an array or list is used in-place of an index: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[10, 11, 12, 13, 14],\n",
       "       [20, 21, 22, 23, 24],\n",
       "       [30, 31, 32, 33, 34]])"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "row_indices = [1, 2, 3]\n",
    "A[row_indices]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([11, 22, 33])"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "col_indices = [1, 2, 3]\n",
    "A[row_indices, col_indices]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(11, 22, 33)"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# equivalent to\n",
    "A[1,1], A[2,2], A[3,3]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also index *masks*: If the index mask is an Numpy array of with data type `bool`, then an element is selected (True) or not (False) depending on the value of the index mask at the position each element: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4])"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B = np.array([n for n in range(5)])\n",
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 2])"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "row_mask = np.array([True, False, True, False, False])\n",
    "B[row_mask]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 2])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# same thing\n",
    "row_mask = np.array([1,0,1,0,0], dtype=bool)\n",
    "B[row_mask]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This feature is very useful to conditionally select elements from an array, using for example comparison operators:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. ,\n",
       "       6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.arange(0, 10, 0.5)\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, False, False, False, False, False, False,\n",
       "       False,  True, False,  True, False,  True, False,  True, False,\n",
       "        True, False])"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# want values of x that are at least 5 and have no decimal component\n",
    "mask = (x >= 5) & (x % 1 == 0)\n",
    "mask"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5., 6., 7., 8., 9.])"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[mask]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[x > 5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Linear algebra\n",
    "\n",
    "Vectorizing code is the key to writing efficient numerical calculation with Python/Numpy. That means that as much as possible of a program should be formulated in terms of matrix and vector operations, like matrix-matrix multiplication."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4])"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v1 = np.arange(0, 5)\n",
    "v1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 2, 4, 6, 8])"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v1 * 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 3, 4, 5, 6])"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v1 + 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  1,  2,  3,  4],\n",
       "       [10, 11, 12, 13, 14],\n",
       "       [20, 21, 22, 23, 24],\n",
       "       [30, 31, 32, 33, 34],\n",
       "       [40, 41, 42, 43, 44]])"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 300,  310,  320,  330,  340],\n",
       "       [1300, 1360, 1420, 1480, 1540],\n",
       "       [2300, 2410, 2520, 2630, 2740],\n",
       "       [3300, 3460, 3620, 3780, 3940],\n",
       "       [4300, 4510, 4720, 4930, 5140]])"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.dot(A, A)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 30, 130, 230, 330, 430])"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.dot(A, v1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "30"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.dot(v1, v1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Alternatively, we can cast the array objects to the type `matrix`. This changes the behavior of the standard arithmetic operators `+, -, *` to use matrix algebra. There is a ton of matrix math that we won't cover here."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "M = np.matrix(A)\n",
    "v = np.matrix(v1).T # make it a column vectorm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[ 0,  1,  2,  3,  4],\n",
       "        [10, 11, 12, 13, 14],\n",
       "        [20, 21, 22, 23, 24],\n",
       "        [30, 31, 32, 33, 34],\n",
       "        [40, 41, 42, 43, 44]])"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[0],\n",
       "        [1],\n",
       "        [2],\n",
       "        [3],\n",
       "        [4]])"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[ 300,  310,  320,  330,  340],\n",
       "        [1300, 1360, 1420, 1480, 1540],\n",
       "        [2300, 2410, 2520, 2630, 2740],\n",
       "        [3300, 3460, 3620, 3780, 3940],\n",
       "        [4300, 4510, 4720, 4930, 5140]])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M*M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[ 30],\n",
       "        [130],\n",
       "        [230],\n",
       "        [330],\n",
       "        [430]])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M*v"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Data computations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.0"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(v1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1.4142135623730951, 2.0)"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.std(v1), np.var(v1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v1.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v1.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(v1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Iterating over array elements"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n",
      "2\n",
      "3\n",
      "4\n"
     ]
    }
   ],
   "source": [
    "for element in v1:\n",
    "    print(element)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2],\n",
       "       [3, 4]])"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M = np.array([[1,2], [3,4]])\n",
    "M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "row [1 2]\n",
      "1\n",
      "2\n",
      "row [3 4]\n",
      "3\n",
      "4\n"
     ]
    }
   ],
   "source": [
    "for row in M:\n",
    "    print(\"row\", row)    \n",
    "    for element in row:\n",
    "        print(element)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "row_idx 0 row [1 2]\n",
      "col_idx 0 element 1\n",
      "col_idx 1 element 2\n",
      "row_idx 1 row [3 4]\n",
      "col_idx 0 element 3\n",
      "col_idx 1 element 4\n"
     ]
    }
   ],
   "source": [
    "for row_idx, row in enumerate(M):\n",
    "    print(\"row_idx\", row_idx, \"row\", row)    \n",
    "    for col_idx, element in enumerate(row):\n",
    "        print(\"col_idx\", col_idx, \"element\", element) \n",
    "        # modify the matrix M: square each element\n",
    "        M[row_idx, col_idx] = element ** 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  4],\n",
       "       [ 9, 16]])"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# each element in M are now squared\n",
    "M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  1,  16],\n",
       "       [ 81, 256]])"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# another way to square a matrix\n",
    "M ** 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=\"pandas\"></a>\n",
    "\n",
    "### Pandas\n",
    "\n",
    "#### What is Pandas?\n",
    "\n",
    "Pandas is a software library written for the Python programming language for data manipulation and analysis. In particular, it offers data structures and operations for manipulating numerical tables and time series. \n",
    "\n",
    "#### Library features\n",
    "\n",
    "* DataFrame object for data manipulation with integrated indexing\n",
    "* Tools for reading and writing data between in-memory data structures and different file formats\n",
    "* Data alignment and integrated handling of missing data\n",
    "* Reshaping and pivoting of data sets\n",
    "* Label-based slicing, fancy indexing, and subsetting of large data sets\n",
    "* Data structure column insertion and deletion\n",
    "* Group-by engine allowing split-apply-combine operations on data sets\n",
    "* Data set merging and joining\n",
    "* Hierarchical axis indexing to work with high-dimensional data in a lower-dimensional data structure\n",
    "* Time series-functionality: date range generation and frequency conversion, moving window statistics, moving window linear regressions, date shifting and lagging\n",
    "\n",
    "The library is highly optimized for performance, with critical code paths written in Cython or C."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Download data\n",
    "\n",
    "I copied data from http://www.sccoos.org/data/autoshorestations/autoshorestations.php?study=Scripps%20Pier and pasted it into Excel, then saved it as a CSV file. Download [scripps_pier_20151110.csv](https://raw.githubusercontent.com/cuttlefishh/python-for-data-analysis/master/data/scripps_pier_20151110.csv) from GitHub and save it to a directory called `data` at the same level as `lessons`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Install packages"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Install pandas and matplotlib using if you haven't already. If you're not sure, you can type `conda list` at a terminal prompt.\n",
    "\n",
    "```\n",
    "conda install pandas\n",
    "conda install matplotlib\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Import modules"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Read data from CSV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [],
   "source": [
    "data1 = pd.read_csv('../data/scripps_pier_20151110.csv', index_col=None, header=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>chl (ug/L)</th>\n",
       "      <th>pres (dbar)</th>\n",
       "      <th>sal (PSU)</th>\n",
       "      <th>temp (C)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>11/10/15 1:42</td>\n",
       "      <td>22.307</td>\n",
       "      <td>3.712</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>11/10/15 1:35</td>\n",
       "      <td>22.311</td>\n",
       "      <td>3.588</td>\n",
       "      <td>33.201</td>\n",
       "      <td>19.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>11/10/15 1:29</td>\n",
       "      <td>22.305</td>\n",
       "      <td>3.541</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>11/10/15 1:23</td>\n",
       "      <td>22.323</td>\n",
       "      <td>3.463</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11/10/15 1:17</td>\n",
       "      <td>22.316</td>\n",
       "      <td>3.471</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Date  chl (ug/L)  pres (dbar)  sal (PSU)  temp (C)\n",
       "0  11/10/15 1:42      22.307        3.712     33.199     19.95\n",
       "1  11/10/15 1:35      22.311        3.588     33.201     19.94\n",
       "2  11/10/15 1:29      22.305        3.541     33.200     19.95\n",
       "3  11/10/15 1:23      22.323        3.463     33.200     19.95\n",
       "4  11/10/15 1:17      22.316        3.471     33.199     19.95"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "data2 = pd.read_csv('../data/scripps_pier_20151110.csv', index_col=0, header=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chl (ug/L)</th>\n",
       "      <th>pres (dbar)</th>\n",
       "      <th>sal (PSU)</th>\n",
       "      <th>temp (C)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:42</th>\n",
       "      <td>22.307</td>\n",
       "      <td>3.712</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:35</th>\n",
       "      <td>22.311</td>\n",
       "      <td>3.588</td>\n",
       "      <td>33.201</td>\n",
       "      <td>19.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:29</th>\n",
       "      <td>22.305</td>\n",
       "      <td>3.541</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:23</th>\n",
       "      <td>22.323</td>\n",
       "      <td>3.463</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:17</th>\n",
       "      <td>22.316</td>\n",
       "      <td>3.471</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               chl (ug/L)  pres (dbar)  sal (PSU)  temp (C)\n",
       "Date                                                       \n",
       "11/10/15 1:42      22.307        3.712     33.199     19.95\n",
       "11/10/15 1:35      22.311        3.588     33.201     19.94\n",
       "11/10/15 1:29      22.305        3.541     33.200     19.95\n",
       "11/10/15 1:23      22.323        3.463     33.200     19.95\n",
       "11/10/15 1:17      22.316        3.471     33.199     19.95"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chl (ug/L)</th>\n",
       "      <th>pres (dbar)</th>\n",
       "      <th>sal (PSU)</th>\n",
       "      <th>temp (C)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>66.000000</td>\n",
       "      <td>66.000000</td>\n",
       "      <td>66.000000</td>\n",
       "      <td>66.00000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>22.349576</td>\n",
       "      <td>3.041818</td>\n",
       "      <td>33.199318</td>\n",
       "      <td>20.06697</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.038988</td>\n",
       "      <td>0.254295</td>\n",
       "      <td>0.004959</td>\n",
       "      <td>0.06850</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>22.305000</td>\n",
       "      <td>2.714000</td>\n",
       "      <td>33.184000</td>\n",
       "      <td>19.94000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>22.319000</td>\n",
       "      <td>2.813250</td>\n",
       "      <td>33.197000</td>\n",
       "      <td>20.04000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>22.333500</td>\n",
       "      <td>2.997000</td>\n",
       "      <td>33.199000</td>\n",
       "      <td>20.07000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>22.385000</td>\n",
       "      <td>3.215500</td>\n",
       "      <td>33.203000</td>\n",
       "      <td>20.10500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>22.426000</td>\n",
       "      <td>3.712000</td>\n",
       "      <td>33.206000</td>\n",
       "      <td>20.19000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       chl (ug/L)  pres (dbar)  sal (PSU)  temp (C)\n",
       "count   66.000000    66.000000  66.000000  66.00000\n",
       "mean    22.349576     3.041818  33.199318  20.06697\n",
       "std      0.038988     0.254295   0.004959   0.06850\n",
       "min     22.305000     2.714000  33.184000  19.94000\n",
       "25%     22.319000     2.813250  33.197000  20.04000\n",
       "50%     22.333500     2.997000  33.199000  20.07000\n",
       "75%     22.385000     3.215500  33.203000  20.10500\n",
       "max     22.426000     3.712000  33.206000  20.19000"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Indexing in pandas\n",
    "\n",
    "There are two ways to index a Pandas DataFrame.\n",
    "\n",
    "* `loc` works on labels in the index.\n",
    "* `iloc` works on the positions in the index (so it only takes integers)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### With Date as the index column (data2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "chl (ug/L)     22.307\n",
       "pres (dbar)     3.712\n",
       "sal (PSU)      33.199\n",
       "temp (C)       19.950\n",
       "Name: 11/10/15 1:42, dtype: float64"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.iloc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Date\n",
       "11/10/15 1:42    19.95\n",
       "11/10/15 1:35    19.94\n",
       "11/10/15 1:29    19.95\n",
       "11/10/15 1:23    19.95\n",
       "11/10/15 1:17    19.95\n",
       "11/10/15 1:11    19.95\n",
       "11/10/15 1:05    19.96\n",
       "11/10/15 0:59    19.99\n",
       "11/10/15 0:53    20.00\n",
       "11/10/15 0:47    20.01\n",
       "Name: temp (C), dtype: float64"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2['temp (C)'].head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### With no index column (data1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Date           11/10/15 1:42\n",
       "chl (ug/L)            22.307\n",
       "pres (dbar)            3.712\n",
       "sal (PSU)             33.199\n",
       "temp (C)               19.95\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.iloc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Date           11/10/15 1:42\n",
       "chl (ug/L)            22.307\n",
       "pres (dbar)            3.712\n",
       "sal (PSU)             33.199\n",
       "temp (C)               19.95\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.loc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "chl (ug/L)     22.307\n",
       "pres (dbar)     3.712\n",
       "sal (PSU)      33.199\n",
       "temp (C)       19.950\n",
       "Name: 11/10/15 1:42, dtype: float64"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.loc['11/10/15 1:42']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    11/10/15 1:42\n",
       "1    11/10/15 1:35\n",
       "2    11/10/15 1:29\n",
       "3    11/10/15 1:23\n",
       "4    11/10/15 1:17\n",
       "Name: Date, dtype: object"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1['Date'].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    11/10/15 1:42\n",
       "1    11/10/15 1:35\n",
       "2    11/10/15 1:29\n",
       "3    11/10/15 1:23\n",
       "4    11/10/15 1:17\n",
       "Name: Date, dtype: object"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.Date.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    11/10/15 1:42\n",
       "1    11/10/15 1:35\n",
       "2    11/10/15 1:29\n",
       "3    11/10/15 1:23\n",
       "4    11/10/15 1:17\n",
       "Name: Date, dtype: object"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.iloc[:,0].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Convert date/time to timestamp object"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0   2015-11-10 01:42:00\n",
       "1   2015-11-10 01:35:00\n",
       "2   2015-11-10 01:29:00\n",
       "3   2015-11-10 01:23:00\n",
       "4   2015-11-10 01:17:00\n",
       "Name: Date, dtype: datetime64[ns]"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "time = pd.to_datetime(data1.iloc[:,0])\n",
    "time.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.series.Series"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(time)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('<M8[ns]')"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "time.dtype"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=\"matplotlib\"></a>\n",
    "\n",
    "### Matplotlib"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Plot a single variable vs. time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "plt.plot(time, data1['chl (ug/L)'])\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Chlorophyll')\n",
    "fig.savefig('scripps_pier_Chlorophyll.pdf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Plot each response variable in a loop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [],
   "source": [
    "# rename the columns so they can be inserted as file names\n",
    "data1.rename(columns={'chl (ug/L)': 'chlorophyll', 'pres (dbar)': 'pressure', \n",
    "                      'sal (PSU)': 'salinity', 'temp (C)': 'temperature'}, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>chlorophyll</th>\n",
       "      <th>pressure</th>\n",
       "      <th>salinity</th>\n",
       "      <th>temperature</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>11/10/15 1:42</td>\n",
       "      <td>22.307</td>\n",
       "      <td>3.712</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>11/10/15 1:35</td>\n",
       "      <td>22.311</td>\n",
       "      <td>3.588</td>\n",
       "      <td>33.201</td>\n",
       "      <td>19.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>11/10/15 1:29</td>\n",
       "      <td>22.305</td>\n",
       "      <td>3.541</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>11/10/15 1:23</td>\n",
       "      <td>22.323</td>\n",
       "      <td>3.463</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11/10/15 1:17</td>\n",
       "      <td>22.316</td>\n",
       "      <td>3.471</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Date  chlorophyll  pressure  salinity  temperature\n",
       "0  11/10/15 1:42       22.307     3.712    33.199        19.95\n",
       "1  11/10/15 1:35       22.311     3.588    33.201        19.94\n",
       "2  11/10/15 1:29       22.305     3.541    33.200        19.95\n",
       "3  11/10/15 1:23       22.323     3.463    33.200        19.95\n",
       "4  11/10/15 1:17       22.316     3.471    33.199        19.95"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# index is numerical starting from 0\n",
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Date', 'chlorophyll', 'pressure', 'salinity', 'temperature'], dtype='object')"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaMAAAEKCAYAAAC/hjrSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3Xl4VeW1+PHvykxmSE7IACGQME+JIiKoIFqhiGNra6tWrdbr0F699d5atb2trb0dvLVqa2v9OVxbsdo6oeKECDgCMk8JgTCTQMKUCTKv3x9nB0JykpyEnJycZH2e5zye7L3fvdeJISvvu9d+X1FVjDHGGH8K8ncAxhhjjCUjY4wxfmfJyBhjjN9ZMjLGGON3loyMMcb4nSUjY4wxfmfJyBhjjN9ZMjLGGON3loyMMcb4XYi/A+gOiYmJmpGR4e8wjDEmoKxateqgqrq641p9IhllZGSwcuVKf4dhjDEBRUR2dde1bJjOGGOM31kyMsYY43eWjIwxxvidJSNjjDF+Z8nIGGOM31kyMsYY43eWjIwxxvidJaM2zF+7jxeWdVuZvTHG9FmWjNrw7ob9PPvpDn+HYYwxvZ4lozaMTI5hx6FKjtfU+zsUY4zp1SwZtWF0SgyqsLW43N+hGGNMr2bJqA2jkmMByCuyZGSMMb7UJyZK7az0AZH0Cw0md3/ZaZ2noUF5bNFWDpRVtdiXFBvBpRNSGD4w5rSuYYwxgcySURuCgoQRyTFs2X96PaMN+0p5bNFW+keGEhZysjOqCgcrqnl80VZGp8Ry2cRULp2YwqD+kacbujHGBBSfJSMRGQz8DUgGGoCnVPUxEXkYuBSoAQqAm1T1aCvnCAZWAvtUda6zbR4wCagFVgD/pqq1vvoco5NjeH/TflQVEenUOZZsKUEEFt0zgwFRYafsKymvZsH6Qt5cV8hv38vjt+/l8eOvjuK26ZldEb4xxgQEX94zqgPuUdXRwBTgThEZAywExqnqBCAfuK+Nc9wF5DbbNg8YBYwH+gG3dHXgTY1MjuHIsVpKyqs7fY4l+cVMGBTfIhEBuGLCuXHaUF67Yxof/9cFXDxmIA+/v4VVu46cTtjGGBNQfJaMVLVIVVc778txJ5U0Vf1AVeucw5YBgzy1F5FBwCXA083O+446cPeMPLbvKieKGDo5VHeksoa1e44yY0T7iyWmJ0Tyv9+YSEpcBHe/vIbyKp91+Iwxpkfplmo6EckAcoDlzXZ9F3i3lWaPAj/CPcTn6ZyhwPXAe10SZCtGJbsLC/I6WcTw8dYSVGHGSO9W7o2NCOXRb2az78hxfvbmpk5d0xhjAo3Pk5GIRAOvAneralmT7Q/gHsqb56HNXKBYVVe1ceo/Ax+r6ietXPdWEVkpIitLSko6HX//qDAGxoZ3urx76ZYS+keGMmFQvNdtJmUM4Aczh/Pa6n28ua6wU9c1xphA4tNk5PReXgXmqeprTbbfAMwFrnWG25qbBlwmIjuBl4CZIvJCk/Y/A1zAD1u7tqo+paqTVHWSy+Vdr6Q1o5JjOzVM19CgLM0v4fwRLoKDOlb88IOZWZyRHs8Dr29g75FjHb62McYEEp8lI3GXnj0D5KrqI022zwbuBS5TVY+/ZVX1PlUdpKoZwDXAR6p6ndP+FmAW8C1V9TiE19VGpcSwrbiC2vqWl6uoruO9jUV4yqkbC0s5VFnj9RBdUyHBQTx2TQ6q8MOX11Hf4ClnG2NM7+DLntE03Pd0ZorIWuc1B/gTEAMsdLY9CSAiqSLyjhfnfRIYCHzhtP9vX32ARqOSY6ipb2DHwcoW+576eDu3vbCadzfub7GvsaT7/OGd65kNHhDJzy8by4qdh1mwoahT5zDGmEDgs+eMVPVTwNPYlMeEo6qFwBwP25cAS5p83e0P6jatqBvRZKYEVeWNNfsA+J93cpk5KomI0OAT+5dsKWZCWhwJ0eGdvvZVOWn8dWkBf168jUsnpHT6WSdjjOnJbG46L2S6ogkJEvKKTq2oW7PnKLsPH+OqnDT2HjnOs5+dXG7iSGUNa/YcZfrIpNO6dlCQcPuMTPL2l/NRXvFpncsYY3oqS0ZeCAsJItMV3aKIYf6afYSFBPHzy8fylTEDeeKjbRSXu+ef62hJd1sunZhKWnw/nli8zeO9KWOMCXSWjLw0KuXUOepq6xt4a30RXxk9kNiIUO6fM5qa+gZ+/34+cLKke2IHSrpbExocxG3Th7F691GW7zh82uczxpiexpKRl0Ymx7Dv6HFKj7tnRfh060EOV9ZweXYqAEMTo7hxagb/XLWHDXtLWZpfwnnDO17S3ZqrJw0mMTqcJxZv65LzGWNMT2LJyEujnSKG/APu3tEba/cR1y+UGU3uCX1/5nD6R4Zxx4urOFRZw3QvpgDyVkRoMDefO5RPth5k/V6P88oaY0zAsmTkpVEpzrRARWVUVtfxwaYDzBmfcsqSEHH9QvnhV0aw5/BxAM7vwmQEcN2UdGIiQvjz4oIuPa8xxvibJSMvJcdGEBsRQu7+chZuPsDx2nquzElrcdw1Zw1mVHIMZ6TH44rpfEm3JzERodw4NYP3Nu1nmy2FbozpRSwZeUlEGJUSy5b95by+Zh9p8f2YNKR/i+NCgoN4+d/O4dkbz/JJHDdOzSAiNIjHFlllnTGm97Bk1AGjk2PYVFjKp9sOcll2KkGtFCfE9QslPrLl2kVdISE6nO+dN4y31hXyx4+smMEY0zvYsuMdMDI5lqpa9/x0V2S3HKLrLv9x0QgKj1bxyMJ8IsOCueW8YX6LxRhjuoIlow5oLGIYnRLLyOSYdo72naAg4bdfG8/x2joeWpBLVHgI35qc7rd4jDHmdFky6oCRA2OIjQjh25MH+zsUQoKDePSbORyvWcn9r28gMiyYy/3YWzPGmNNh94w6ICo8hGX3X8h1U4b4OxTAPU3RX647k7OHDuCH/1zHx/mdX0TQGGP8yZJRB0WGhfSombMjQoN5+oazGJoYxU/nb6S6rt7fIRljTIdZMuoFosND+NmlY9h16BjPf77T3+EYY0yHWTLqJc4b7uLCUUn8cdE2DlZU+zscY4zpEEtGvcj9l4zmeG09jyzM93coxhjTIZaMepFMVzTfOSeDl1bsJrfZQoDGGNOTWTLqZe66cDix/UJ5aMFmmy7IGBMwLBn1MnGR7pnDP9t2iA9zbZlyY0xgsGTUC317cjrDk6L51YLNHKms8Xc4xhjTLktGvVBIcBAPXjaWfUePM/uxj/lkqz0Ma4zp2SwZ9VJTsxJ5/Y5pxESEcv0zK3jwrU1U1doDscaYnsmSUS82Li2Ot39wLjdOzeC5z3Zy6R8/tSo7Y0yP5LNkJCKDRWSxiOSKyCYRucvZ/rCI5InIehF5XUTi2zhHsIisEZG3m2wbKiLLRWSriLwsIr5ZOKiXiAgN5ueXjeX5707m6PFa7py32t8hGWNMC77sGdUB96jqaGAKcKeIjAEWAuNUdQKQD9zXxjnuAnKbbfst8AdVHQ4cAW7u8sh7oekjXPxgZhbbD1ay42Clv8MxxphT+CwZqWqRqq523pfjTippqvqBqtY5hy0DBnlqLyKDgEuAp5tsE2Am8Iqz6XngCt98gt5nxogkAJZusZJvY0zP0i33jEQkA8gBljfb9V3g3VaaPQr8CGhosi0BONokme0FbBEfL6UnRDIsMYolttSEMaaH8XkyEpFo4FXgblUta7L9AdxDefM8tJkLFKvqqua7PFzC4zQDInKriKwUkZUlJfbLt9H0kS6+KDhklXXGmB7Fp8lIREJxJ6J5qvpak+03AHOBa9XznDXTgMtEZCfwEjBTRF4ADgLxItK4Qu0goNDTtVX1KVWdpKqTXC5Xl32mQDdjZBLVdQ0s237I36EYY8wJvqymE+AZIFdVH2myfTZwL3CZqh7z1FZV71PVQaqaAVwDfKSq1zmJazHwdefQG4D5vvoMvdHZQwcQERrEki3WWzTG9By+7BlNA67H3atZ67zmAH8CYoCFzrYnAUQkVUTe8eK89wI/FJFtuO8hPeOj+HuliNBgzhmWwFK7b2SM6UFC2j+kc1T1Uzzf4/GYcFS1EJjjYfsSYEmTr7cDk7skyD5q+ggXi9/azK5DlQxJiPJ3OMYYYzMw9EUzRrpLvG2ozhjTU1gy6oMyEqPISIhkiT1vZIzpIXw2TGd6thkjk3jpy91U1dYTERp82udbs/sI9/xrHXX1pxZHXp6dyj0Xjzzt8xtjejfrGfVR00e6qKptYPmOw11yvkW5xew6dIwzh/Q/8QoSeH3Nvi45vzGmd7OeUR91zrAEwkOCWLKlmOkjTv85rLz95WS6ovjDN7NPbHvsw608uiif4zX19As7/d6XMab3sp5RHxURGsyUYQks7aIihrz9ZYxMjj1lW1ZSNKpQUFLRJdcwxvReloz6sBkjXWw/WMnuQx6fPfZaeVUte48cZ1RyzCnbM5PcZeOWjIwx7bFk1Ic1lni/u7HotM6Tf6AcgNEppyajjIQoggQKii0ZGWPaZsmoDxuaGMXUzAT+srSA0mO1nT5PbpE7GTUfposIDWbwgEgKSmz9JGNM2ywZ9XE/nTuGsuO1PLZoa6fPsWV/OTERIaTGRbTYl+WKZpv1jIwx7bBk1MeNTonlm2el87cvdnb63k7e/jJGJcfgnhv3VFlJ0ew4WEl9g8eVPowxBrBkZIB7Lh5BRGgw/7Og+Qrv7VNV8vaXM6rZEF2jTFc0NfUN7Dl8ekUSxpjezZKRITE6nB/MzGJRXjEfd3A278LSKsqr6hjVrHihUWZSNGAVdcaYtlkyMgDcOC2D9AGRPLRgM3X1J1d6r61vYGl+CZsKSz22yytyL97bvKy7UZbLnYzsvpExpi02A4MBIDwkmPvnjOa2F1bx4ordjE6J5c21hSzYUMThyhrS4vvx6b0XtLgvlLffXUk3YqDnZBQXGUpidLj1jIwxbbJkZE6YNXYg5wxL4L/nbwIgIjSIi0YPZEBUGH/7Yhcb95UxflDcKW3y9pczqH8/YiJCWz1vpivKekbGmDZZMjIniAgPXTmOJz7axvkjXHxlzECiwkM4XFnDvOW7eX/T/pbJqKis1eKFRllJ0by1rhBV9VhxZ4wxds/InCLTFc0j38zmipw0osLdf6sMiApjcsYA3t+0/5Rjq+vq2X6wssXMC57OWVZVx8GKGp/FbYwJbJaMjFdmjR3I1uIKtje597OtuIL6BmVkK8ULjbKSrIjBGNM2S0bGKxePTQbg/U0HTmzLc6YB8maYDqy82xjTOktGxiup8f2YMCiO95oM1W05UE5YSBAZCZFttk2JiyAyLNh6RsaYVlkyMl6bNTaZdXuOsr+0CoDcojJGDIwmJLjtHyMRIdMVbT0jY0yrLBkZr80aOxCADza7e0dtTQPUXKYrypaSMMa0ypKR8VpWUgzDXFG8v2k/hyqqKSmvbnXmhZZtoyksraKyus7HURpjApHPkpGIDBaRxSKSKyKbROQuZ/vDIpInIutF5HURiffQNkJEVojIOqftg032XSgiq0VkrYh8KiJZvvoMpqVZY5NZtv0wy3ccBtovXmiU6UwLtN3WNjLGeODLnlEdcI+qjgamAHeKyBhgITBOVScA+cB9HtpWAzNVdSKQDcwWkSnOvr8A16pqNvAi8BMffgbTzOyxydQ3KE8s3gbQ6gSpzZ0o7y4p91lsxpjA1eYMDCJyRlv7VXV1G/uKgCLnfbmI5AJpqvpBk8OWAV/30FaBxhsMoc6rcUEcBRr/HI8DCtuK0XStCYPiSImLYFNhGYnRYSRGh3vVbkhCFMFBQkGx9YyMMS21Nx3Q79vYp8BMby4iIhlADrC82a7vAi+30iYYWAVkAU+oamPbW4B3ROQ4UIa71+Wp/a3ArQDp6enehGm8ICJcPGYgz3+xy+shOoCwkCCGDIi08m5jjEdtDtOp6gVtvLxNRNHAq8DdqlrWZPsDuIfy5rVy7XpnKG4QMFlExjm7/gOYo6qDgOeAR1pp/5SqTlLVSS6Xy5tQjZdmOQ/AtjfzQnOZSVbebYzxrL1huqva2q+qr7XTPhR3IprX9FgRuQGYC1zoDMm1dY2jIrIE932jA8DEJr2kl4H32mpvut7koQO4+sxBXJ6d2qF2ma5olmwppq6+od1nk4wxfUt7w3SXtrFPgVaTkbinZ34GyFXVR5psnw3cC0xXVY9rUYuIC6h1ElE/4CLgt8ARIE5ERqhqPvAVoONrZZvTEhIcxMNXT+xwu6ykaGrrld2HjzHMqa4zxhhoJxmp6k3gvn+jqvUdPPc04Hpgg4isdbbdDzwOhAMLneUElqnqbSKSCjytqnOAFOB5575REPBPVX3bieV7wKsi0oA7OX23g3EZP8l0RQHuCVMtGRljmvJ2PaNtIvIK8Jyqbvamgap+CnhavOadVo4vBOY479fjLnjwdNzrwOvexGB6luEDYwgLDuLzgkMnJl41xhjw/jmjxmeCnhaRZSJyq4h4X0plDBAdHsJXxyfz6uq9HKuxmRiMMSd5lYxUtVxV/5+qTgV+BPwMKBKR520GBNMR1549hPKqOt5eV+TvUIwxPYhXyUhEgkXkMhF5HXgM9/NHw4C3aGXYzRhPzsroz4iB0cxbvsvfoRhjehBvh+m2ApcDD6tqjqo+oqoHVPUVrLTadICIcO3ZQ1i3t5QNe0v9HY4xpofw+p6Rqt6sqp8336Gq/97FMZle7soz0ugXGmy9I2PMCd5W0/UTkX8HMpq2UVUrqzYdFhsRymUTU5m/tpD7LxlNbESov0MyxviZtz2j+bgnJf0QWNDkZUynXDdlCMdr63ljzT5/h2KM6QG87RlFquq9Po3E9CnjB8UxYVAcLyzbxfVThuA8AG2M6aO87Rm9LSJzfBqJ6XOuPTud/AMVrNx1xN+hGGP8rM1kJCLlIlIG3IU7IVU52xq3G9Npl05MJSYihHnLrJDBmL6uvSUkYlQ11vlvkKpGOO9jVNVmYDCnJTIshK+dMYgFG4p4ZdVe2pnA3RjTi3k9j7+IXCUij4jI70XkCl8GZfqO78/MIie9P//5r3Xc+eJqjlTW+DskY4wfeDsDw5+B24ANwEbgNhF5wpeBmb4hMTqcf3xvCvfOHsXCzQeY9ejHfJxf4u+wjDHdzNue0XRglqo+p6rP4Z5de4bPojJ9SnCQcPuMTF6/Yxpx/UL5zrMreGLxNn+HZYzpRt4moy1AepOvBwPruz4c05eNS4vjrR+cyyXjU3hkYT7bisv9HZIxppt4m4wSgFwRWeIsAb4ZcInImyLyps+iM31ORGgwv7xiHJFhwTy0wBbxNaav8Pah1//2aRTGNDEgKoy7LhzOQwtyWbylmAtGJvk7JGOMj3m7ntFSIA+IcV65qrq08eXLAE3f9J1zMhiaGMWvFuRSW9/g73CMMT7mbTXdN4AVwNXAN4DlIvJ1XwZm+rawkCAemDOabcUVvLh8t7/DMcb4mLfDdA8AZ6lqMYCIuHBPmvqKrwIz5sLRSZyblcgfPszn8uxU4iPD/B2SMcZHvC1gCGpMRI5DHWhrTKeICD+ZO5qy47U8tmirv8MxxviQtz2j90TkfeAfztffxJYbN91gVHIs10xO5+9f7KK6roGgJpN7D+ofyffOG0ZwkM34bUyg8yoZqep/ichVwLmAAE+p6us+jcwYxw+/MoKN+0p5f+P+E9saVDlyrJYGVe6YkeXH6IwxXaHdZCQiwcD7qnoR8Jq3JxaRwcDfgGSgAXcCe0xEHgYuBWqAAuAmVT3arG0E8DEQ7sT4iqr+zNknwEO4iynqgb+o6uPexmUCT2J0OG9+/9xTtqkq339xDY98kM+0zEQmDo73U3TGmK7Q7n0fVa0HjolIXAfPXQfco6qjgSnAnSIyBlgIjFPVCUA+cJ+HttXATFWdCGQDs0VkirPvRtwzQIxyzv1SB+MyvYCI8D9XjscVE87dL6+lsrrO3yEZY06Dt0UIVcAGEXlGRB5vfLXVQFWLVHW1874cyAXSVPUDVW38zbEMGOShrapqhfNlqPNqXF/gduAXqtrgHFvcvL3pG+IiQ/nDN7PZeaiSX7y12d/hGGNOg7fJaAHwU9xDZ6uavLwiIhlADrC82a7vAu+20iZYRNYCxcBCVW1smwl8U0RWisi7IjLc2zhM7zNlWAK3T8/k5ZV7eHdDkb/DMcZ0krcFDM+LSBgwwtm0RVVrvWkrItHAq8DdqlrWZPsDuIfy5rVyzXogW0TigddFZJyqbsR9H6lKVSc5RRXPAud5uO6twK0A6enpzXebXuTui0bw6baD/Pi1DWSnx5MS18/fIRljOsjbGRhmAFuBJ4A/A/kicr4X7UJxJ6J5qvpak+03AHOBa7Wd5T2d4oYlwGxn017nnACvAxNaafeUqk5S1Ukul6u9UE0ACwsJ4rFrcqipa7DhOmMClLfDdL8HLlbV6ap6PjAL+ENbDZyqt2dwz2P3SJPts4F7gctU9VgrbV1OjwgR6QdchHtuPIA3gJnO++m4iyBMHzc0MYrrpqSzcPMBWy3WmADkbTIKVdUtjV+oaj7uooK2TAOuB2aKyFrnNQf4E+7JVhc6254EEJFUEWl8kDYFWCwi64Evcd8zetvZ9xvgayKyAfg1cIuXn8H0cpdnp1HXoCywe0fGBBxvZ2BYKSLPAH93vr6WdgoYVPVT3A/INudx5gZVLcS9giyquh53wYOn444Cl3gXtulLxqbGMjwpmvlr93HdlCH+DscY0wHe9oxuBzYB/w7chXtxvdt8FZQxnSEiXJGTxpc7j7DnsMcRYGNMD+XtekbVqvqIql6lqleq6h9UtdrXwRnTUZdNTAXgzXWFfo7EGNMRbQ7TOfdlWq12c2ZRMKbHGDwgkrMy+vPGmn3cMSMTdx2NMaana++e0dxuicKYLnR5dho/eWMjm4vKGJva0VmsjDH+0OYwnaruauvVXUEa0xGXjE8hJEiYv9aG6owJFN4+9HqViGwVkVIRKRORchEpa7+lMd2vf1QYM0YmMX/tPuob2nym2hjTQ3hbTfc73A+pxqlqrKrGqGqsLwMz5nRckZPKgbJqlm8/5O9QjDFe8DYZHVDVXJ9GYkwXumj0QKLDQ3hj7T5/h2KM8UJ71XRXOW9XisjLuKfiOVHS3XS+OWN6kojQYGaNTebdDfv5xeXjiAgN9ndIxpg2tNczutR5xQDHgIubbLNKO9OjXZmTRnl1HR/l2ZJXxvR0bfaMVPUmABF5HrircXlwEemPe/JUY3qsczITSIoJ5401+5gzPsXf4Rhj2uDtPaMJjYkIQFWP0Mrcccb0FMFBwqUTU1mypYTSY14tv2WM8RNvk1GQ0xsCQEQG4P0kq8b4zRXZadTUN/DORpvJ25ierCPrGX0uIr8UkV8An+Mu9zamRxuXFkumK4rX11hVnTE9mbcTpf4N+BpwACgBrlLVv7fdyhj/ExGuyE5jxY7D7Dt63N/hGGNa4W3PCFXdrKp/UtU/qqqt7WwCxuXZaQC8adMDGdNjeZ2MjAlU6QmRnJEez3x7ANaYHsuSkekTrshJI29/OblFNqWiMT2RJSPTJzTO5G3TAxnTM1kyMn1CQnQ4549w8dbaQhpsJm9jehxLRqbPuDw7lcLSKlbsPOzvUIwxzVgyMn3GV8YMJDIsmDfsmSNjehxLRqbPiAwLYdbYZN7ZUERNXYO/wzHGNGHJyPQpXx2XTFlVHSt32VCdMT2Jz5KRiAwWkcUikisim0TkLmf7wyKSJyLrReR1EYn30DZCRFaIyDqn7YMejvmjiFT4Kn7TO03NSiQ0WFi6pcTfoRhjmvBlz6gOuEdVRwNTgDtFZAywEBinqhOAfOA+D22rgZmqOhHIBmaLyJTGnSIyCWiRxIxpT3R4CGdlDGCJJSOfUFX+urSAdXuOtn+wMU34LBmpapGqrnbelwO5QJqqfqCqdc5hy4BBHtqqqjb2ekKdlwKISDDwMPAjX8VuercZI11sOVBOoc1V1+WWbCnh1+/m8fSnO/wdigkw3XLPSEQycK9/tLzZru8C77bSJlhE1gLFwEJVbWz7feBNVbU1AUynzBiZBMDSfOsddaXa+gZ+ucA9beWa3Uf8HI0JND5PRiISDbwK3K2qZU22P4B7KG+ep3aqWq+q2bh7TpNFZJyIpAJXA3/04rq3ishKEVlZUmK/dMxJw5OiSY2LYMkWW468K/39i11sL6nk3KxE9h45TnF5lb9DMgHEp8lIREJxJ6J5qvpak+03AHOBa1W1zcfhnRVmlwCzcfeusoBtIrITiBSRba20e0pVJ6nqJJfL1RUfx/QSIsL0kUl8tu2QlXh3kSOVNTz6YT7nDU/k7ouGA7B2t903Mt7zZTWdAM8Auar6SJPts4F7gctU9VgrbV2NVXYi0g+4CMhT1QWqmqyqGaqaARxT1SxffQbTe80Y6aKiuo5Vu2w4qSs8+mE+FdV1/OSSMYxLiyM0WFhjRQymA3zZM5oGXA/MFJG1zmsO8CcgBljobHsSQERSReQdp20KsFhE1gNf4r5n9LYPYzV9zDSnxHtJvg3VATQ0KFW19e0eV1Fd12Lb1gPlvLB8N98+O52RyTFEhAYzJiWW1ZboTQeE+OrEqvopIB52veNhG6paCMxx3q/HPSTX3jWiTydG03dFh4cwacgAlm4p4b6vjvZ3OH61rbiC/3h5LUWlVbx06xSykjz/s/q/z3bw87c2My4tlssnpjF3Ygopcf14aEEukWHB/MdFI04cm5Pen5e/3ENdfQMhwfZsvWmf/ZSYPmvGSBd5+8spKu2bJd6qyt+/2MncP37CniPHAOW6p5ez53DL0fN/frmHn7+1mbOHDiBYhF+9k8vU33zEZX/6lKX5Jdx14XASosNPHJ+THs/x2nq2HCjvvg9kApolI9NnnSjx7oMPwBaXV3HT/33JT+dvYvLQBN6/+3xeuOVsjtfW8+2nl7G/9GQl3NvrC/nxa+s5b3gif7t5MvO/fy6L/3MGd184gorqOsakxPKdczJOOf8Z6f0BWGNFDMZLloxMnzViYDQpcREtZmP4ouAQ1z29nG3FvXO2qZ0HK5n96Cd8UXCIBy8by/M3ncXA2AhGJcfyt+9O5khlLdc+vYxDFdUsyj3A3S+tZdKQATx1/STCQ4IBGJoYxV0N4cQuAAAd20lEQVQXDeeje2bwzl3nERZy6q+SQf37kRgdZsnIeM1n94yM6elEhBkjXby9roja+gYaVHnkg3ye+mQ7qvDexiK+P3O4v8Pscg8t2ExNXQNv/eBcRgyMOWXfxMHxPHPDJG54bgXf+OsX7DlynDGpsTxz4yT6hQV7fQ0RIXtwf9bssSIG4x3rGZk+bfqIJMqr63hpxW6ueOJz/vrxdr41OZ20+H5sLipr/wQB5pOtJXyYW8z3Z2a1SESNzh6WwF+vn8Tuw8cYmhDF8zdNJiYitMPXykmPZ3tJJUeP1Zxu2KYPsJ6R6dOmZSUQEiT8dP4mEqLCePo7k7hozEBuf2EVmwp7VzKqq2/gl29vJn1AJDdNy2jz2OkjXCz8j+kkRId1KhFBk/tGe45ygXN/zpjWWM/I9GkxEaF8a3I6l0xI4b27z+eiMQMBGJsay65DxyirqvVzhF3nH1/uIf9ABffPGXXi3k9bMhKjOp2IACYMiiNIrIjBeMd6RqbP++UV41psG5MaC0BeUTmThw7o7pC6XOnxWh75YAtnDx3ArLHJ3XLNqPAQRibHepw09X/f38KWA+X89bozCQry9Dii6WusZ2SMB2NT4wDYVFjq50i6xh8XbeXo8Vp+OncM7pm6ukdOejxr9xyloeHkFJQfbNrPnxZvY+HmA7y6em+3xWJ6NktGxniQFBNOYnQYm3vBfaPtJRX83+c7+caZgxmXFtet184ZHE95VR3bD7rL5IvLqrj31fWMSYll4uB4fvf+Fio9TDFk+h5LRsZ4ICKMTontFUUMv3k3j/CQIO6ZNaL9g7tYjlPEsHqXu3d0z7/Wcby2nse/lc3PLh1DSXk1Ty4t6Pa4TM9jyciYVoxNjWNrcXlALzNRU9fA4i3FXDM5naSYiG6//rDEKOL6hbJmzxGe/WwHn2w9yE8uGUNWUgxnpPfn8uxUnvp4O3uPeJzA3/QhloyMacXY1Fhq65WtxYE7v1r+gXJq65XswfF+uX5QkJA9OJ4Pc4v53XtbuGj0QK49O/3E/ntnj0IEfvveFr/EZ3oOS0bGtKKxoq6rh+o27itl39HumZy18Z7XWOez+ENOejwl5dXERYby26+NP6WAIjW+H7een8lb6wpZteuw32I0/mfJyJhWDE2IIjIsuMuLGP7t76v48avru/ScrdlcVEZkWDAZCVHdcj1PzhvuIiw4iN9fPfGUmb0b3TZ9GANjw/nFW5tPqbozfYslI2NaERTkLmLoymRUUV3HvqPH+aLgEKXHfP9A7abCUkanxPr1WZ4zh/Rn44OzOH+Ey+P+yLAQ7p09inV7S3lzXWE3R2d6CktGxrRhTEosm4vKuuwv9gJnJvC6BmVR3oEuOWdrGhqUzYVlfh2ia9R8Vu/mrshOY5griheX7+6miExPY8nImDaMTY2lorqO3R4WnOuMxmUpwkOCeH/T/i45Z2t2Hz5GZU09Y1L8n4zaExQkXJWTxoqdh62yro+yZGRMGxpnYvA0g/fnBQfJ29+xIbyCkgpCgoSvnTmIpfklHK+p75I4Pdl0onihex907azLs9MAbKiuj7JkZEwbhg+MJjhIWkwLtOfwMW587ktufPZLjtV4P4PAtuIKMhKjmDs+haraBpbm+26V2c1FpYQECcMHRvvsGl1p8IBIzhzSnzfW7EPVChn6GktGxrQhIjSY4UnRLcq7f/NeHijsL6viqY+3e32+gpIKMl1RTB46gPjIUD7w4VDdpsIyspKiiQj1flE8f7siO5X8AxXkFgXus12mcywZGdOOMamnVtR9ufMwC9YXcecFWVwyIYUnlxZQ6MVzQ7X1Dew6dIyspGhCgoO4cNRAPsw9QG29b2Z42FRYduJZqUBxyYRUQoKE+Wv3ed1m39HjlPeipT6a23vkGPV9oOTdkpEx7RiTEktxeTUl5dU0NCi/eGszKXER3Hr+MH48exQNCr97L6/d8+w6dIy6BiXT5R42mzV2IGVVdSzf3vUPexaXV1FSXh0w94saDYgKY/oIF/PXFnpVwXj0WA0X/X4pZz70Ibe/sIr3NhZRVeu7+3DdbVtxBdMfXsLra7xPzoHKkpEx7Wi6nMSrq/eyYV8pP/7qKPqFBTN4QCTfO28ob6wtZLWHdXuaaqyky0pyJ6PzR7joFxrsk6q6xp5cIFTSNXd5Thr7y6pYtuNQu8cu2FDE8dp6Lhmfwpc7j3DbC6s566EPufeV9RSXV3V5bKrK//t4O7sPdU/F34vLd1PfoGzc1zuWMmmLz5KRiAwWkcUikisim0TkLmf7wyKSJyLrReR1EWkxaZaIRIjIChFZ57R9sMm+eSKyRUQ2isizItL5pSiN8ULjUNfKnUf43ftbyEmP57KJqSf23z4jC1eMewaBtm68F5S4k9Ewp2cUERrM9BEuPti8v8tnHmi8xxVow3QAXxk9kKiwYOavab+qbv6aQrKSonnkGxNZdt9M/n7zZGaPS+aNtfuY/egnXX5PbmtxBb96J5dnP9vRpef15HhNPa+s2gOc/NnpzXzZM6oD7lHV0cAU4E4RGQMsBMap6gQgH7jPQ9tqYKaqTgSygdkiMsXZNw8YBYwH+gG3+PAzGENcv1AG9e/HUx9vp6S8usUCddHhIfzXrJGs3XO0zbLkguIKUuIiiA4/ucDyrHEDOVBWzbq9Xbs09+aiMgYP6Edcv8D7W61fWDCzxiXzTjtDbnuPHGPFzsNckZ2KiBASHMR5w108fPVE3v7BuSTHRnCrM/VSV62Z9Pm2g+7/FhzskvO15e31hZRV1TEkIfJEr7o381kyUtUiVV3tvC8HcoE0Vf1AVRt/MpYBgzy0VVVt/O6HOi919r3j7Fdghaf2xnS1samx1NQ3cHl2Kmc4a/Q09fUzBjEuLZbfvJvX6rND20oqTgzRNZo5ciAhQcJ7zf6C33Wo8rSGZjYXlgXkEF2jK7LTKK+qY3FecavHzF/rTvyNzyc1NXxgDG/cOY3bZ2Ty8so9zHn8E9Z3QcL/vMA9dJh/oIKS8urTPl9b5i3fTaYriqvPHERRaRUVvXwRwm65ZyQiGUAOsLzZru8C77bSJlhE1gLFwEJVXd5sfyhwPfBeK+1vFZGVIrKypMR3z3KYvuGsjAFEh7vnUPMkKEh4YM4YikqreMtD70hVKSiuOFG80CguMpRzMhP4YNMBisuqePbTHVz+xGdMf3gJc//4aaf+qq+ormPHwcqAK15oampmAonR4bzRSlWdqjJ/7T4mDenP4AGRHo8JCwni3tmjeOl7U6ipa+Dul9eeVkz1Dcqy7YdOJHlf9o427itl7Z6jXHv2ELKSYgD3ir29mc+TkYhEA68Cd6tqWZPtD+AeypvnqZ2q1qtqNu6ez2QRGdfskD8DH6vqJ620f0pVJ6nqJJfL8wSNxnjrpmlD+ezHM0mN79fqMVOGDSA5NoIl+S3/mt9fVkVlTT2ZSS0fQL14bDI7DlZy9q8X8Yu3N1NX38D9c0bxb9OH8fLKPVzy+CftFkc0lVfk/2UjTldIcBCXTkxhcV4Jhypa9kByi8rJP1DB5Tkte0XNnT0sge+ck8H2kkoOV9Z0OqZNhaWUVdXxvfOHEhMRwhcF7RdYdNa85buJCA3ia2cMOtGb7u1DdSHtH9J5Tu/lVWCeqr7WZPsNwFzgQm3nUWtVPSoiS4DZwEan/c8AF/BvPgrdmFMEB0m7919EhOkjXLyzsYi6+gZCgk/+rdf4iyTT1XIph7njU1iSV8zY1Fguy0498ZcwwMyRSfzwn+u4+skv+P4FWdwwNYOmE3CHBgcRFX7qP+NALl5o6tuT03lh2S7uf30DT1535in36d5Yu4+QIOGS8SleneuMdHed1No9R5g5amCn4mkcopuWlciUYQl85qOeUXlVLfPX7uPSCanERYYSGR5MSJD0+iIGnyUjcf/kPAPkquojTbbPBu4Fpquqx/pIEXEBtU4i6gdcBPzW2XcLMAt3Igvc9aBNrzRjpIuXV+5h9e6jTB464MT2gmZl3U31jwrjmRvP8ni+s4cl8O7d5/Hz+Zt4bNFWHlu09ZT9wUHCLy8fx7ebrJ66ubCMAVFhJMd2/zLjXWn4wBj+a9ZI/uedPF7+cg/XTHZ/xvoG5c21hUwf4WJAVJhX5xo/KI7gIGHN7qOdTkafbTvIiIHRJMVEMC0zgYWbD7Dn8LFWhwk76421hRyrqefaKUMA9x8cfaGIwZc9o2m47+lscO79ANwPPA6EAwudv3SWqeptIpIKPK2qc4AU4HkRCcY9lPhPVX3bOceTwC7gC6f9a6r6Cx9+DmO8Nm14IiFBwpItxacko20lFcREhODysLhce2IjQnnkm9lckZPW4q/jRbnFPPDGBvqFBXFljruWZ1NRKWNTY0/pSQSqW84dxtL8Eh58azNnDR1Apiua5TsOsb+sigcuGe31eSLDQhiVHMOa3Z0rYqipa+DLnYe55ix3QpyalQjAFwWHujQZqSrzlu1iXFosEwedvOeX6YqmoKSyy67TE/ksGanqp4Cnfw3vtHJ8ITDHeb8ed8GDp+N8OrRozOmIjQjljCH9WbKlhB81KXYoKK4kKyn6tBLE+SNcLRao+9bkdG58bgX/+a/19AsN4cLRSeTvr+CmaRmdvk5PEhQk/P7qbGY/9jF3v7SWV2+fyvw1hUSFBXPR6I71cHLS43ljTSH1DUpwBxcbXLP7CFW1DUzNTABgeFI0idHhfFZwkG+cNbhD52rL6t1HyNtfzq+vOnV59qykaD7KK6a2voHQ4N45V0Hv/FTG+NGMkS42F5VRXHZyBoBtJRVkubp+9uyI0GCevuEsxqfF8e//WMOzn+6gpr4h4O8XNZUcF8FvrprAhn2l/ObdPN7ZWMSsccn0C+vYBLA5g/tTUV3XqeGuzwsOESTuYVNw3x+cmpnA5wWHPD7o/Ocl23i82ZBqW6pq63lnQxEPvrWZ6PCQUx6qBnfPqK5Bu2xdrZ7IkpExXWzGiCQAljjLQ5Qer6WkvNpjJV1XiA4P4fmbJpOZFM2v33XPkRfIZd2ezB6XzLcmD+bZz3ZQXlXHlV5U0TV3xhD382FrOlCZ2OiLgkOMS4s7pYhlamYCJeXVLYZOc4vK+N/3t/DYoq1tThukqnycX8I9/1zHpIc+5I55qykqreK/Lx3ToiilL1TUWTIypouNTolhYGw4S7e4k1HjLytf9IwaxUWG8vebJzPMFUVMeAhDE1tW7QW6n84dw7DEKJJiwpmamdjh9hkJkcRHhnb4vtGxmjrW7DnS4prTnPtGn207WeKtqjy0wN27CRbhrx8XtHrevywt4DvPruCDzfuZMz6ZebeczbL7LuQbk1oO+2X2gWRk91+M6WKNJd7vbdxPXX3DybJuH/WMGiVGh/Pa7VMpKq3q8D2RQBAZFsJLt06horquU59PRMgZHM+aPR3rGX258wi19XriflGjwQMiGdS/H58XHOSGqRmAu6Dks22H+PmlY9hyoIJ/rdrLXRcOJ6lZZeOBsir+9NE2Lho9kD99O6fdNaeiw0NIjo3o1eXd1jMyxgdmjEyirKqONXuOUlBSQVhwEIP7t/7AbFeJjwxjdABPA9SepNiIExPNdkZOen+2FldQ1oH1jz4vOEhosHBWxoAW+6ZlJrJs+2HqG5SaugZ+9U4uma4orp0yhNumD6OuvoFnPm05qerD72+hrl756dzRXi9+mJUUfeIRgd7IkpExPjAtK5Fgp8S7oLiCjMTIUx6CNf6Rkx6PKqzf4/28f59vO0ROen+PBRNTsxIoPV7L5sIy/vbFTnYcrOQnc8c4zwZFMXdCKi8s20XpsZPJb8PeUl5ZtZebzs1gSIL3w6mZrigKSip77ZLs9q/DGB+I6xfKmenuEu+CkkqPD7ua7jdxcDwieD29UumxWjYWlrYYomt0jlNd9/aGQh5btJXpI1xcMDLpxP7bZ2RSWVPP81/sBNz3lB58axOJ0WF8/4KsDsWelRRNRXUdB8p8O0Grv1gyMsZHpo90samwjF2HKn1avGC8FxsRyvCkaK8r6pbtOITqyWKF5pJiIxieFM1TH2/nWE09P2n2IO7olFguHJXEc5/t4FhNHQs2FLFy1xHuuXgkMREdW96jcZLd3nrfyAoYjPGRGSNdPPz+FhrU98ULxns5g/vz/ub9qOopD5buOXyMPy/ZRlXtyVnGcovK6BcazMRBLdYAPWFqZgJbiyu4/pwhDB8Y02L/HRdk8bW/fM5zn+3kxeW7GZUc47Firj1Ny7ubJ8cF64sIDhJmj0vu8Hl7CktGxvjImJRYkmLCKS6vbrF0hPGfnPR4Xl65h52Hjp0oga+pa+COeavJP1DOwGaVb9dNSScspPVBpCvPGET+gQruunC4x/1nDunP2UMH8L8fbEEVXvze2Z2qBnTFhBMTHtKivPtgRTU//OdaausbePbGs5jRZJgwkFgyMsZHGku8X1m9l2EeZus2/pGTfvLh18Zk9IcP89mwr5QnrzuD2eO8mwm8UfbgeP5x65Q2j7nzgiyWP7uCi8cM7NQzUuD+ecpMim4xTPfcZ+5ZN4YmRvGDF9fw+p1TT5n5PVDYPSNjfOiHF4/gyevOJDLM/u7rKbKSookODznx8OsXBYd4cmkB15w1uMOJyFvnDU/kf6+eyK+uHH9a58lKij6lZ1RWVcvfPt/FV8cl8/ebzyY8NJibn1/JkdNYt8lfLBkZ40Mpcf2YNTZwx/F7o+AgIXtwPKt3H+HosRp++M+1DE2I4r8vHeOza4oIXz9zEK6Yjs/a3lSmK5ri8uoTz0n9/YtdlFfXcceMLNLi+/HX68+k6GgVt89bRW19YK2wY8nIGNPn5KTHk7e/nP/81zpKyqt59JrsgOi9NhYxFBRXcLymnmc/3cH0ES7GpbnnIjxzSH9+87XxLNt+mJ+9uSmgnknq+d99Y4zpYjnp8dQ3KB/mFnPv7FFMaKNaridpXCm4oKSS9XtLOVRZwx0zMk855iqnoOLJpQWMSIrmxmlD/RFqh1kyMsb0OdmD+xMkMHnoAG49f5i/w/Fa+oBIQoOFvKIy3t24n0lD+p+yiGOjH80aybbiCn7x9may0/uTPbjnJ1tLRsaYPmdAVBgv3Hw2Y1JjA2pS2ZDgIDISovjHit1U1tTzyyvGelywMShIePSabF5cvovxaYGxnIjdMzLG9ElTsxKJjwzzdxgdlpUUTWVNPaOSY06Zeqi56PAQbj0/M2CSrSUjY4wJII1FDHdekHVay9j3NDZMZ4wxAeSKnDTqG5Q5433zTJS/WDIyxpgAkumK5kezR/k7jC5nw3TGGGP8zpKRMcYYv/NZMhKRwSKyWERyRWSTiNzlbH9YRPJEZL2IvC4iLQrgRSRCRFaIyDqn7YNN9g0VkeUislVEXhaRwCuHMcYYcwpf9ozqgHtUdTQwBbhTRMYAC4FxqjoByAfu89C2GpipqhOBbGC2iDROi/tb4A+qOhw4Atzsw89gjDGmG/gsGalqkaqudt6XA7lAmqp+oKp1zmHLgEEe2qqqNk5NG+q8VNx1jDOBV5x9zwNX+OozGGOM6R7dcs9IRDKAHGB5s13fBd5tpU2wiKwFioGFqrocSACONklme4E0X8RsjDGm+/g8GYlINPAqcLeqljXZ/gDuobx5ntqpar2qZuPuOU0WkXGApye8PE5LKyK3ishKEVlZUlJyuh/DGGOMD/k0GYlIKO5ENE9VX2uy/QZgLnCttjPHuaoeBZYAs4GDQLyIND4fNQgobKXdU6o6SVUnuVyu0/4sxhhjfMdnD70693eeAXJV9ZEm22cD9wLTVfVYK21dQK2qHhWRfsBFwG9VVUVkMfB14CXgBmB+e7GsWrXqoIjsamV3Iu4kF4gCNfZAjRssdn8I1LghcGNvjHtId11QfLX4koicC3wCbAAalxy8H3gcCAcOOduWqeptIpIKPK2qc0RkAu7ihGDcvbd/quovnPMOw52IBgBrgOtUtfo04lypqpM6296fAjX2QI0bLHZ/CNS4IXBj90fcPusZqeqneL7H804rxxcCc5z363EXPHg6bjswuYvCNMYY0wPYDAzGGGP8zpIRPOXvAE5DoMYeqHGDxe4PgRo3BG7s3R63z+4ZGWOMMd6ynpExxhi/C6hkJCLPikixiGxstv1qZ0LVBhFptQJERAaIyEJnktWFItLf2d7fmbR1vTNB67hW2v9KRPaISEWz7UNEZJHTfomIDGq2329xi0ikiCxwJqfdJCK/abIv3Jlsdpsz+WyGh/Y9NfbzRWS1iNSJyNdbuXZPjf2HIrLZab9IRIY0a9tT475NRDaIyFoR+VTcc002b3+6sbd6nIjc5/ysbhGRWa20P9OJcZuIPC7iXgq1te9JAMTd7vV7cOztTop9ClUNmBdwPnAGsLHZ9tHASNwPx05qo/3vgB8773+M+9klgIeBnznvRwGLWmk/BUgBKppt/xdwg/N+JvD3nhI3EAlc4LwPw11u/1Xn6zuAJ5331wAv96TveTuxZwATgL8BX+9pPy/txH4BEOm8v735970Hxx3b5LjLgPd88D33eBwwBliH+7GQoUABEOyh/QrgHNyVvO82id3j9yQA4m73+j049ouBEOf9b5t/z1ucp62dPfGF+5fQxlb2tfdN3wKkOO9TgC3O+wXAuU2OKwAGtnGe5sloEzDIeS9AWU+M2znmMeB7zvv3gXOc9yG4H3KTQIi9ybb/o5Vk1NNjd7bnAJ8FYNzfAt7t6u95a8fhnt3/viZfn/jZbbItBchrFuNf2/qe9PS4O/D/vMfG7my/EvdMPK1eP6CG6brAQFUtAves4kCSs30dcBWAiEzG/dRxi9nE27AO+Jrz/kogRkQSuiRity6J2+kmXwoscjalAXuc89YBpbgno+1Kvoq9O3RH7DfTymTBp8FncYvInSJSgLun8e9dHHdbTvysOjxNkpzmbPd0TGvfE1873bj9qStjb3VS7EZ9LRm15jdAf3HPEv4D3DM71LXd5BT/CUwXkTXAdGBfB9t3ltdxi3s+v38Aj6v7wWHowMSzPnC6sftTl8QuItcBk3APn3WH045bVZ9Q1UzcU3r9xPchnwzJw7bmP6v+/HluTaDGDV0Uu7QzKXYjn83A0BOIyHO4h0EKVXUOcEBEUlS1SERScC9PgbpnE7/JaSPADuflFXXPHtH4F2c08DVVLe1hcT8FbFXVR5ts2wsMBvY6v3zigMOdjbubY+9y3Rm7iFwEPIB7jsZOT2fV3XE38RLwl9OJu5XYW9P4s9rI0yTJezm1p9f0GI/fkwCIu8t1Z+xyclLsC9UZr2tNr+4ZqepNqprd5Bv+Ju7JVaHJJKsiEi8nly+/BfhYmyx30R4RSRSRxu/lfcCzPSluEXkId6K5u9mupuf9OvBRez8wPSj2LtddsYtIDvBX4DJVPa1fit0c9/AmX14CbPVB7K15E7hG3BWgQ4HhuG+cNz1XEVAuIlOcZPsdTk6k7PF7EgBxd7nuil1OTop9mbYyKXbzwALmhXvYoAioxZ2Rb9aTN8f24l6u/ADwfivtE3CPf291/jvA2X6Osy0PeA3o30r73znXaXD++3Nn+9ed9vnA00B4T4kb918qinul3bXO6xZnXwTuSsBtzg/ZsJ70PW8n9rOc61finnR3UwDF/qFz3cbtbwZI3I/hLtZZCywGxvrge97qcbh7kgW4ixG+2kr7ScBG57g/cfLBfo/fkwCIu93r9+DYt+G+59T4c/Skp/aNL5uBwRhjjN/16mE6Y4wxgcGSkTHGGL+zZGSMMcbvLBkZY4zxO0tGxhhj/M6SkTFdzHme5w7nfaqIvOLvmIzp6ay025guJu6lON5WVY9LkRhjWurV0wEZ4ye/ATKdOeC2AqNVdZyI3AhcAQQD44Df416m4XrcDxzOUdXDIpIJPAG4gGO4Z83O6/6PYUz3sWE6Y7rej4ECVc0G/qvZvnHAt4HJwK+AY6qaA3yBeyoVcM8L9wNVPRP3JLx/7paojfEj6xkZ070Wq2o57vm8SoG3nO0bgAnORLtTgX85C2aCe3EzY3o1S0bGdK+mM3Q3NPm6Afe/xyDgqNOrMqbPsGE6Y7peORDTmYbqnkV7h4hcDe6lHkRkYlcGZ0xPZMnImC6mqoeAz0RkI51bOO9a4GYRWYd7luzLuzI+Y3oiK+02xhjjd9YzMsYY43eWjIwxxvidJSNjjDF+Z8nIGGOM31kyMsYY43eWjIwxxvidJSNjjDF+Z8nIGGOM3/1/yM1KWtTLOJcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaoAAAEKCAYAAABDkxEYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3Xl83HWd+PHXezK5k8kxOXo3TdKUlqMttNCmnKUUFgUPVNRdETxQ+IGK4Cruuru67j5cFRSPRVgREXdXFHUBUaEtd9NSKNBC6ZWkd5s0mTR3c818fn98v5NOk5lkksyVzPv5eMwjk8/3mM+k07zzud4fMcaglFJKJSpHvCuglFJKjUQDlVJKqYSmgUoppVRC00CllFIqoWmgUkopldA0UCmllEpoGqiUUkolNA1USimlEpoGKqWUUgnNGe8KxFNRUZEpKyuLdzWUUmpS2bp1a7MxpjhWr5fUgaqsrIzXX3893tVQSqlJRUQOxPL1tOtPKaVUQtNApZRSKqFpoFJKKZXQNFAppZRKaBqolFJKJTQNVEoppRKaBiqllFIJLanXUSWqtpP9rH+3kQ+eOxMRCXqOMYYn3jrKxVXFFGanhX1vYwy/3nyApo7eUc+9cH4x588rDHm8oa2HV2qbuW6Eenp9hl/W7Ketu++08pkFmVy/fE7Y9VZKJS8NVAno91sP860/vcv80hzOmZUf9Jza45186bG3uGttFbetnh/2vd891s43ntgBQIjYAoAx8D9bDvLS319GVlrwj8k//t87rN/ZSKkrnYvmB1+k/oc3DvOvf3r3tNczxvo6153NinJ32HVXSiUnDVQJqK6pE4CaOk/IQLWxthmAXQ0dY7p3Ta0HgM13X860vIyQ52090MJ192/ilzX7ufXSymHH3zrUyvqdjYjA95/dw4WVRcNaVX0DPu7bsJezZ+bx5G2rBo/39Hu5+LvPc8+zu/nt51aGbI0ppRToGFVCqm/qAk4Fo2Bq6qyAs6dxjIGqrpny4uwRgxTAeXMLuWxBMQ+8WE/byf5hx+95djeF2Wl84z2L2HaolfU7jw8757HXD3H4xEnuXFt1WjDKSE3h9tWVvLb/BC/uaRpT/ZVSyUcDVQLa12wFqtf2t9A34Bt23OszbK73IGIFtWDnBNPv9bFlXwurKorCOv/OtQtoO9nPQy/Xn1a+ud7Dy3ubufXSCj6xci5l7izueXY3Pp8ZPKen38tPntvL8rICLqka3i14/fI5zCrI5J5n92CMGXZcKaX8NFAlmK7eARrae1g8K4+efh9vHWodds6Oo2209wywekEJAz5DfXNnWPfefriVrj4v1RXhjQudNTOPq8+exkOv7MPTaU2+MMbw/Wd2U+pK5+9WzCU1xcEdV1Sxq6GDP719bPDaRzcdoLG9l7vWLgjatZfmdPDFy+fz9pE2ntnREFZ9lFLJSQNVgvG3pj5+wRwcErz7z9/td+OqMgB2hzlOVVNrtcLGMoHhjjVVdPd7eeAlq1X14p4mXj9wgttXzycjNQWAa86ZwYLSXH64bg8DXh+dvQPc/2IdF80v4oIRXusDS2dSXpzNvev24PVpq0opFVzUApWIZIjIFhHZJiI7ROSbdvlDdtl2EXlcRHKCXHuFiGwVkbftr6sDjp1nl9eKyI/E/nNdRP5FRI6IyFv24+povbdoqrcD1ZLZBZw1M49NdlAKVFPnYX5JDhfMc+N0SNjjVDV1HhZNd1Ewhuns80tz+cCSmTxSs5+Gth7ueXYPswoy+ciy2YPnOBzCHVdUUd/cxR/ePMLDr+yjpauPO9cuGPHezhQHd6ypYk9jJ09tOxp2nZRSySWaLapeYLUxZjGwBLhKRFYAdxhjFhtjzgEOArcFubYZuMYYczbwSeDRgGP3AzcD8+3HVQHHfmCMWWI//hz5txR99U2diMBcdxYrK9y8eegE3X0Dg8f7Bny8tq+F6go3aU4H5cXZ7G4Yveuvp9/L1oMnwu72C/SlNVV4fYYbH97C20fa+NKaKtKcp390rjyzlHNm5XHf+r08+HI9VywqZcns4DMWA73n7OksnO7iB+v30O8Nb6xNKZVcohaojMX/GzTVfhhjTDuA3RLKBIb1+Rhj3jTG+P/E3gFkiEi6iEwHXMaYTcYagf8V8P5ovYd4qG/qYmZ+JhmpKayqKKLfa3ht/4nB428dauVkv5fqSmtCRFVpLrsb20e979YDJ+gb8FEd5kSKQHPcWXxk+Wx2NXRQUZzNB5bOHHaOiHDn2gUcaT1JZ+8Ad66tCuveDodw5xVVHPB0c9fvtvG9Z3YNPn64fg9t3cNnHAZ6ftdx3jnSNub3pJSaPKK6jkpEUoCtQCXwU2PMq3b5w8DVwLvAnaPc5jrgTWNMr4jMBA4HHDsMBP7WvE1EbgBeB+40xpxgCBG5GatFxpw5iZcZob65k/Jiqzd0WVkBqSlCTV3z4My5jbXN1jjTPKtltKA0lz9tP0ZX7wDZ6aH/OWvqmnE6hOUjZJoYye2rK3l5bxNfv3ohKY7g654unl/E2kWllLjSOWOaK+x7X76whIvmF/H09mOnlQ/4DK3d/fzLtWcGve5I60k+9+hWzp2bz29uXhn+m1FKTSpRDVTGGC+wRETygT+KyFnGmHeMMTfZQezHwPXAw8GuF5Ezgf8A1vqLgr2M/fV+4F/t7/8VuAf4VJA6PQg8CLBs2bKEGsE3xrCvqYtlc61gkpXmZOnsgtPGqTbVeThrRh55WakALJiWC8De450jdrVtrPWweHY+OSMEs5FMz8vk5b9fPeI5IsKDNywb871FhEc/fcGw8q/9fjv/8+pBPntxOTPzM4cd//GGvfR5fbxxsJWefu/g5A6l1NQSk1l/xphW4AUCxpPsIPYYVotpGBGZBfwRuMEYU2cXHwZmBZw2Czhq36/RGOM1xviA/wLOj/DbiLrjHb109XkpL84eLKuudPP2kTbauvvp7hvgzUMnqK48Nc7kD1S7G0J3/7X39LP9cOu4xqfi6fbLrdRQP96wd9ixfc1d/G7rYc6YlkvfgI+tB4Y1npVSU0Q0Z/0V2y0pRCQTWAPsFpFKu0yAa4BdQa7NB54G7jbGbPSXG2OOAR0issK+/gbgCfua6QG3+ADwTlTeWBT5UyeVF52aCFldUYQxsHmfh9f2n6Dfa04bZ5pdkEVGqmPECRWv7WvBZxjX+FQ8zczP5OMXzOF3Ww8PTtv3++H6PaSlOPjZ352H02F1jyqlpqZotqimA8+LyHbgNWAdVvB5RETeBt62z/kWgIhcKyLfsq+9DWtc6xsB081L7GO3AD8HaoE64C92+XftaevbgcuAO6L43qLC/8s4sEW1ZHY+makpbKrzUFPXTGqKsLysYPC4wyFUleaOOEV9Y62HdKeDpXNGn4WXaG69rILUFOG+9XsGy3Y3dPDktqPcuKqMsqJsFs/OZ2Pt8Gn8SqmpIWpjVMaY7cDSIIdWhTj/SeBJ+/m3gW+HOO914Kwg5Z8Yd2UTRH1TFxmpDqa5TuXhS3M6WD6vkJq6ZjJSU1g6u2BYNvOq0twRc+bV1DWzrKxgUo7hlORmcGP1PB54qY5bLq1kwbRc7l23m5w0J5+7uByA6go3P32+lvaeflwZqXGusVIq0jQzRQKpb+pkXlEOjiGz6qor3Oxp7OTtI22njU/5nTEtl6aOXlq6+oYd83T2squhY9J1+wX6/CXl5KQ5uXfdbrYfbuWZHY185qJy8rOshcsrK9z4DGypb4lzTZVS0aCBKoHUN3ed1u3n508ia0KMM1WV+idUDO/+21RvdYlNtokUgfKz0vjMReU8s6ORu363jYKsVD51Ydng8XPnFJDudAymllJKTS0aqBJE34CPQy3dlBcND1SLZrhwZTjJTE0JOgXdP/Mv2DhVTZ2H3HQnZ8/Mi3ylY+hTF5ZRkJXKnsZObrm0gtyALr6M1BSWlRXohAqlpigNVAniYEsXPkPQFlWKQ/jIstl88NyZw1IXAZTkppOXmcruIYGqrbufp7ZZ29U7Uyb3P3VuRipfufIMzpzh4hMryoYdr64oYldDB812lnel1NShO/wmiDp7s8TAqemB/vG9i0JeKyIsKM0d1vX3Xy/X09EzwP+7bPgOvZPRxy+Yw8cvCJ5NxN+1ubnew3vPmRHLaimlomxy/5k9hfinps8L0qIKx4Jpuexp6BjchLC5s5dfbNzHe8+ZzqIZ4aczmqzOnplHbrpTx6mUmoI0UCWI+qZOinLSxz29umpaLh29Axxr6wHg/hfq6On3cscV4SWHneycKQ4uKC+kJsj+XUqpyU0DVYKobwo+4y9cC/wz/xo7ONZ2kkc3H+CD586iojh4V+JUtLKiiP2ebo60nox3VZRSEaSBKkHUN3dRMYFAVVVqBaTdDR385LlajDF80c6Vlyz841TaqlJqatFAlQBau/to6epjXpCp6eHKz0qj1JXOczuP89hrh/jo8jnMLsyKYC0T34LSXNzZaUF3RVZKTV4aqBKAf/v5UDP+wrVgmost+1tIcQi3rZ4aM/3GwuEQVlS4qanzDE4qUUpNfhqoxqGmrpl/fuKdiP0yrG8anox2PBbY3X+frC6jNCBfYDKprnDT0N4zGPyVUpOfBqpxqD3eySObDtDYHpnFpfuaO3E6ZMJddZcuKGHhdNdgstZk5E83peNUSk0dGqjGoSpghl0k1Dd1Macwi9QJZo9YVVnEX754Ee6c9IjUazKa685iRl6GrqdSagrRQDUOg1PBR9hVdywmOjVdnSIiVFcWsaneg8+n41RKTQUaqMahIDuNktz0EXfVDZfXZ9jn6aI8idY7RVt1hZvW7n52RugPCaVUfGmgGqcF00beVTdcR1tP0jfgm9DUdHW66sFxKu3+U2oq0EA1TlWluew93oF3gt1Lp6ama6CKlGl5GZQXZ+u2H0pNERqoxmlBaS49/T4OtnRP6D71TVb3oXb9RVZ1hZst+1ro9/riXRWl1ARpoBqnqmmhd9Udi33NXeRmOCnKSYtEtZRtVUURXX1eth9ujXdVlFITpIFqnPy59UKNU3l9hp+/XE9rd9+I96lv6qK8KBsRiXgdk9mKcn/ePx2nUmqy00A1TllpTuYUZoVcS7VlXwvffnon/7vlUMh7+HyGd462DW4lryKnIDuNRdNdbNRxKqUmPQ1UE1BVam1WGMwm+xfkSAP67x5rp7W7n5V21m8VWasq3bxxoJWefm+8q6KUmgANVBOwYFoO9c1d9A4M/0W40c6M8Nr+lqDHgcEs3/7p1CqyqiuK6PP62HrgRLyropSaAA1UE7BgmguvzwwmlfXr7B1g26HWwZmBbx0MPqC/sa6ZiuLspE0gG23L5xXidAgbNe+fUpOaBqoJ8KdSGjqh4rV9LQz4DF9cMx+HnGpdBer3+tiyr0VbU1GUk+5k8ex8zfun1CSngWoC5hVl43TIsCnqNXXNpKU4WH1GCWfPzBscrwq0/XAr3X1eVlXq+FQ0VVe42X64lfae/nhXRSk1ThqoJiDN6aC8ODtIoPJw7tx8MlJTWFlRxJsHW+nuGzjtnI21HkTggnkaqKKpuqIIn4Et9S3xropSapw0UE3Qgmmu06aon+jq491j7YNdeqsq3Qz4DFv2nf6LsqaumUXTXRRk60LfaFo6J590p0O7/5SaxDRQTdCC0hwOnzhJZ6/VYtpc78EYBrv0ls0tJDVFBmf4AfT0e3njQCvVOi096jJSU1hWVqB5/9S4+XyGn71YR2N7z4jn/fWdY7yyN7E+Z7sbOvifVw/GuxoTpoFqgvybKO61W1U1dR6y0lI4Z1Y+AJlpKSydU3DawtPX95+gz+ujulInUsTC0tkF7GmceAJhlZzePHSC7/xlF99+emfIcxraevjCb97iC795c/CP1ngzxnDX77bx9T++zbG2k/GuzoRooJogf1YJ/8y/jXXNnD+v8LTdeldVFLHjaPtgOqWaumacDmF5WWHsK5yEinPT8RlGTWelVDAb7TRcT207ys5jwfc4+8nze/H6DC1dfTz8yr5YVi+kZ3Y08vaRNgDW7zwe59pMjAaqCZpdkEVmagq7GjpoaOuhvqmLVUOmnFdXujEGNtsD+hvrPCyenU9OujMeVU46bjvhb3OnBio1djV1zZQXZZOb4eTedXuGHT/U0s1vthzio8tnc8WiUh58uZ627vjOMvX6DPeu2015UTZzCrPYsLMxrvWZKA1UE+RwCFWlOexp7GBTvdW9NzQl0uJZ+WSmplBT10x7Tz9vH25llY5PxYw7Ox0AT2dvnGuiJhv/ePLlC0u4+aJy1r3byFuHTl/A/8P1e0lxCLevns+da6vo7B3ggZfq4lRjy1PbjrKnsZM7rqjiikWl1NR56EqQLsnx0EAVAVWluexu6GRjrYe8zFQWTXeddjzN6eD8eYXU1HnYUt+Cz8BKXegbM/4tVJq7tEWlxiZwPPmmC+dRmJ3GPc/uHjxee7yDP755mE+smMu0vAzOmObimnNm8PDG/TTH6Q+jfq+PH67fwxnTcnnP2dO5fGEJfQM+Xk6wiR5jEbVAJSIZIrJFRLaJyA4R+aZd/pBdtl1EHheRYTsGisgVIrJVRN62v64OOHaeXV4rIj8Se38MESkUkXUistf+WhCt9zbUgmm5NHf2sn5nIyvL3Tgcw7fsqK5wU3u8kz++dYR0p4Olc/JjVb2kV5SjLSo1PoHjyTnpTm65pIKX9zazud4at/rB+r1kpKbw+UsrBq/50pr59Hl9/Ofz8WlV/X7rYfZ7urlz7QIcdt1zM5yTuvsvmi2qXmC1MWYxsAS4SkRWAHcYYxYbY84BDgK3Bbm2GbjGGHM28Eng0YBj9wM3A/Ptx1V2+deADcaY+cAG+/uY8M/8a+3uD5lpYpU9w+/p7cdYXlZIRmpKrKqX9PIyU0lxCB4do1JjVDNkPPkTK+dS6krnnmd3s+NoG09vP8anVs0b/GMIrN26rzt3Jr9+9UDMZ9v1Dnj50Ya9LJ6dz5qFJQCkpji4bEEJz+06PmlnvkYtUBlLp/1tqv0wxph2ALsllAkM+8kZY940xhy1v90BZIhIuohMB1zGmE3GGAP8Cni/fd77gEfs548ElEfdGQH7SYXq0ls43UVeZqp9jo5PxZLDIRRmp+Hp0haVCl97Tz/bh4wnZ6SmcNvq+by2/wS3/vcbuDKcfPbi8mHXfuHy+Rhj+NGG2lhWmf959SBH23r4ytoFp23GevnCEjxdfcPG1yaLqE47E5EUYCtQCfzUGPOqXf4wcDXwLnDnKLe5DnjTGNMrIjOBwwHHDgMz7eelxphjAMaYYyJSErl3MrLi3HTys1JJS3FQUZwd9JwUh7CivJBndjTqQt84cGen6aw/NSahxpOvXzabB16s44Cnm7vWVg3+ARpoVkEWHzt/jr3Y1pwWNGbmZ3LrpRUT3tX78a2HeePg6VvY/PWdBi6YVzisZ+fSqhKcDmH9zkbOmxuzUZGIiWqgMsZ4gSUikg/8UUTOMsa8Y4y5yQ5iPwauBx4Odr2InAn8B7DWXxTsZcZSJxG5GavrkDlz5ozl0pHuyYfOnUV+VuqIH76PLJtNV6+Xs2fmReR1VfiKctJ1jEqNyca65qDjyWlOB9947yIefKmem1bNC3n9bZdVUlPnYd27p9YweX0+TnT3c8a0XC5fWDruuu1r7uKrv99OVmoK6QHDCJmpKdx99cJhv4fyslJZXlbIhp2NfPWqM8b9uvESk4U8xphWEXkBazzpHbvMKyKPAV8hSKASkVnAH4EbjDH+UcnDwKyA02YB/i7CRhGZbrempgNBV7gZYx4EHgRYtmxZxDps//G9i0Y95/KFpRP6cKrxc+ekcehQd7yroSaRTXWekOPJV545jSvPnDbi9SWuDNZ/+ZLTyvq9Pi6/50XueXYPly0oCTrxKhz3rd9Daoqw4a5LKMkNbz+7yxeW8O2nd3LQ080cd9a4Xjdeojnrr9huSSEimcAaYLeIVNplAlwD7ApybT7wNHC3MWajv9zu2usQkRX29TcAT9iHn8SaeIH99QmUsrmz02nu0BaVCk9zZy+7GjoiPp6cmuLgS2vm8+6xdv7yTsO47rG7oYMnth3lxup5YQcpgCsWWX8kr5+Es/+iOetvOvC8iGwHXgPWYQWfR0TkbeBt+5xvAYjItSLyLfva27DGtb4hIm/ZD/+Y0y3Az4FaoA74i13+HeAKEdkLXGF/rxRgtai6+ryc7PPGuypqEvAnkV4VhXyc71syk8qSHO5dt3tcs/DuXbebnDQnn79k+CSOkcx1Z1NZksOGXZMvUEWt688Ysx1YGuTQqhDnP4nVKsIY823g2yHOex04K0i5B7h8vPVVU5t/0a+nq5dZaZOr20PFXk2dh9x0J2fNcI1+8hilOIQvX1HFrf/9Bv/35hGuO2/W6BfZth9u5ZkdjXxpzXzys8a+RdCahaX8/OV62nv6cWUMnwSSqDQzhUoKpxb96sw/NbpNdc1cUF6IMyU6vyKvOnMaZ85w8cMNe+gb8IV93fef3UNBViqfvjD0JI6RrFlYwoDP8OLupnFdHy8aqFRScPsDla6lUqM40nqS/Z7uwc1Po8HhEO5au4BDLSf57euHwrpmy74WXtrTxOcvqSB3nK2hpXMKKMxOm3TjVBqoVFJwZ2sGdRWemlorJ151iCwzkXLpgmLOm1vAj5/bS0//yGOnxhi+/+xuinPTuWFl2bhfM8UhXLaghBd2NzHgDb8lF28aqFRS8G/1EYuuvzcPnuB/tyTWrqrtPf38aMPeMXUzxcOhlm6+/se3+erj2097PLnt6OgXj8LnM/z0+dpR0xrV1HlwZ6dRVZI74nkTJSLcubaKxvZefr35wIjnvry3mS37Wrjtskoy0yaWfm3NwhLaTvbz+oETo5+cIHRDJJUUstKcZKWlRH3R74DXx5d/u42DLd2895zp4+6iibSX9jRx77o9LJzuGpymnIj+/c87Wfdu42m587r6Bnhi2xFWzCukxBX+dOyhth9p43vP7KazdyDkoldjDDV1zayoCJ5cOtKqK4pYVenm/hfq+Nj5c8gOskedvzU1Mz+Tj54/e8KveVFVMYXZaRw+MXl2/dUWlUoa7py0qG+98Ic3jrCvuQuvz/Da/paovtZYtJ20NvKrqUvcrR7eOdLGX95p4NZLK9j89csHH3+6/UIGvFZraCL8773GnnoeTH1zF43tvcM2P42mu9YuwNPVxy9r9gc9vu7dRrYfbuOLl88n3TnxZNY56U5e+4c1fGgMsw3jTQOVShru7HQ8UdyTqnfAy30b9nLWTBdpTsfgFuaJYDBQJVCdhrrn2d3kZabymSFJXue6s/nwstn8z5aDHD4x/uwi/vf+9uHWwZ/H8HOsYBZqF4RoWDqngDULS3jgxbph9fL5DPeu28O8omw+eO7MEHcYu5QYtBYjSQOVShpFOdFNTPubLYc40nqSr151BsvmFoz4l3ustZ+0dnfd3dhBUwJm6Nh6oIXndzfxuUvKg67vuX11JYLwow17x3X/3gEvr+1v4cwZLnzGmkEXTE2dh5n5mcwpjO1auy9fsYD2ngH+66X608qf2n6UXQ0dfGnN/KhNlZ8Mkvedq6QTzcS0J/u8/OT5Ws6fV8iFlUWsqixi57H2hEmEG/iX+qb6xAmgft9/Zg9FOWncWF0W9PiM/Ez+dsUcfv/GEeqbOoOeM5I3D7bSO+Dj1ksryUh1BO0C9fkMm+o9rKxwTziz+VgtmuHiPedM5xcb9w1+Zga8Pn64fi9nTMvlmnNmxLQ+iUYDlUoa7pw0Wrr68EVh87hfbdpPU0cvX7nS2gfInyNuc31ijFO1n+ynzJ1FboaTTQk2TrWxtplN9R5uvbSSrLTQ87tuvbSStBQHP1w/9lZVTW0zDoGLqopYXlYYtAv03WPtI25+Gm13rKmip9/L/S9YObj9451fvqIqJhM7EpkGKpU03NnpDPgM7T3BxyfGq6Onn/tfrOOSqmKWlxUCcM7MPHLSnQkzeaG9p5+C7DRWlLsTqkvSP6Ntel4GH79g5G13inPTuWlVmd0d1j6m16mp83D2rHxcGamsrHAH7QL15/dbWR67iRSBKkty+OC5s/jV5gMcaunmvg17WTwrL6FnacaKBiqVNPxrqSI9TvXQK/to7e7nrrULBsucKQ4umFeYMEGh7aSV2626ws0BT/eEJiVE0nO7jvPmwVa+cPn8oNtpDHXzxeXkpDm599k9Yb9GV+8Abx06tVOvf0bf5iFdoBvrmikvzmZa3vinwE/UF+2dgT/64GaOtJ7kziE79SYrXUelksapfH+9VJbkjHr+1gPWwl0zSk/hMzsauOrMaZw96/QNMVdWuNmw6zhHW08yIz9z3PWOBKvrL3swLVBNnYePLItvcl5jDPc8u4e57qywp0rnZ6Xx2YvLuXfdHrYdamXx7PxRr9myv4UBnxl872fOcJGbYbV2r1lsjf30e31s2dfCdefGd8r27MIsrl8+m19vPsj58wq5aH58WneJRgOVShqD2SnCmKLu9Rn+/vFtHGvroWCULNWlrnTuunLBsHL/FhE1dZ64r1lpO9mPK9NJVWkORTlp1NQ285FlE188OhHNnX28e6ydf3zPQlLHMKPtUxfO4+GN+/j+s7t59NMXjHr+pjoPaSmOwS3Yrdbu6V2g2w610t3npTrC+0+NxxdWz2fnsQ7+IchOvclKA5VKGu5sq0UVzqLf/3vzCHVNXdz/t+fyN2dPH9frLSjNpTA7jZq65rgGKmMM7T0D5GWm2hM9iqip82CMiesvwsb2HgBmFYytZZeT7uSWSyv49z/v4tV6DxeUjxxcNtY2c+7c/NNSD62qdLN+ZyOHT3QzqyCLmjoPIrBilHvFQokrg9/fUh3vaiQUHaNSSaMgKxWR0ceo+gZ8/HDDHs6a6eKqs0bebnwkDoewstzNJjsoxEtXnxevz5CXaa1Pqq5wc7yjl7qmrrjVCU4FqlJX+ihnDnfDyjJKctO559k9I/5sT3RZrbahmdD93/snUNTUNbNououC7LHv8aSiTwOVShrOFAcFWWmjrm363dZDHGqJzEB2daWbY2097GuOX1Dwr6HyL6RdNThOFd8ZiY3t1r/DeCYvZKSmcPvqSrbsb+GlvaHfx6v7PBjDsC6zvZFWAAAfXklEQVS9wS7QOg8n+7y8caA1Ibr9VHAaqFRSKcpJGzGDek+/lx9vqOW8uQVcWlU84dcLnLwQL+12oPK3qGYXZjIzPzPu6ZQa2nsQ4bQEtGNx/fI5zMzP5J5nd4dsVW2s9ZCVljJs0sWpLtBmXj/QQp/XR3UUtp1XkaGBSiUVK99f6BbVrzcfoKG9h7siNC24zJ3FjLyMuLZeBltUdqASEaor3Gyq9+CNwuLncB1v76EoJ31MEykCpTkdfHHNfLYfbuPZd4NvBFhT18z58wqDvkZ1hZvG9l7+e/NBnA7hfHsNnEo8GqhUUnGP0KLq6h3g/hfquLCyaDCzxET5/3LfVOeJSkaMcAxtUYE1I7HtZD87j41t4WwkNbT3MG0C23YAfHDpTMqLs7n32T3Dgm5jew91TV0hM6H7y/+6o4Els/ODbrGhEoMGKpVUinLSQ876+2XNfjxdfdy5tiqir1ld4eZEdz+7Gjoiet9wtQUJVP5AHM+WXkNbz7gmUgRypji4Y00Vuxs7+NP20zdX9L+3UH90+LtAYfgYlkos+ieESiru7DTaewboG/CR5jz1d1p7Tz8PvFjHmoUlLJ1TENHX9G9pXlPXzKIZrojeOxxDJ1MAlLoyqCjOZmOth5svroh5nQCOd/QOrm2aiPecPZ2fPl/Lv/95J8/vOj5Y/s7RdvKzUlk0PfjP3N8F+ruth1kZw/2n1Nhpi0olFbc9cN8yZNHvC7ubaO8Z4JZLI/9Le3peJkU56dQeH3vW70ho7xlABHIzTv+7dFVlEa/tb4nL9vS9A15auvoonWDXH1jLAP7pvYvITnfy5qHWwUe/18cNK+aOmND1I8tnc+mCYs6dO3qGCxU/2qJSSeVUvr/e06ZFb6prJjfDyZLZkW1N+eVnpYbcrC/a2k/2k5PuHPYLu7rCza82HWD74VaWxXgiwXH/1PQIBCqA6soinrvz0jFft7yskF/edH5E6qCiJ6wWlYj8XkTeIyLaAlOTWlFAoAq0sdbDinJ31HY+zctMjXjW9nC1n+w/bXzKb0W5GxHishOxf7FvyQTHqFRyCDfw3A98HNgrIt8RkTOiWCelouZUYtpTXX+HWro52NId1QF1V4Yzbi2qthCBKj8rjTNnuOIyoWIii31V8gkrUBlj1htj/hY4F9gPrBORGhG5SUSG/w9QKkH5x6gC11L50+isiuKCz7zM1MHt4GPNv8VHMNUVRbx5sJWTfd6Y1qnBnz4pVwOVGl3YXXki4gZuBD4DvAnchxW41kWlZkpFQXZaCulOx2ktqpq6Zopy0pgfxtYf45WXGccxqp7gLSqwxqn6vD5ePxDbnYiPt/eQ5nSQn6V/56rRhTtG9QfgZSALuMYYc60x5jFjzO1A9P53KxVhImKvpbIClTGGmjoPKyuKoppJ3GWPUcVj0a9/i49glpcV4nRIzFM8NbRba6h0GwsVjnBn/f3cGPPnwAIRSTfG9BpjlkWhXkpFjTsnbbDrr66pk+MdvYO7v0ZLXmYqxkBn30DIbrhoaT85ELJFlZ3uZMnsfGpqYztO1RiBrBQqeYTb9fftIGWbIlkRpWLFnX0qjZK/JTF0G4hI8wentu7Ydv/1Dfg42e8NGajAmtr99pG2mHZNNrb3UqKBSoVpxEAlItNE5DwgU0SWisi59uNSrG5ApSYdd0AapY21zczMz2R2YXS3ivcnhI31FPWhCWmDqa5w4zOwZV9sxqmMMdqiUmMyWtfflVgTKGYB9waUdwBfj1KdlIoqf2Jar8+wub6FK88sjfpYiX+MKNYTKvyBcaQW1dI5+WSkOthY28wVi0qjXqeO3gG6+7wTzvOnkseIgcoY8wjwiIhcZ4z5fYzqpFRUFWWn0+f18eo+D20n+6Pe7QenAkWsp6gHy/M3VLozheVlhYPT9KOtsc2/s6+2qFR4RgxUIvJ3xphfA2Ui8uWhx40x9wa5TKmEVpRrZad4apuVbTsWmbNPBaoYt6jC6PoDK8P4d/+6m6aOXopzo9vS8S/21UClwjXaZIps+2sOkBvkodSk4862fhH/5Z0GKktyYjKo7w8Use76C7bFRzD+vZk21Ue/VeVf7KtjVCpco3X9PWB//eZYbywiGcBLQLr9Oo8bY/5ZRB4ClgEC7AFuNMZ0DrnWDTwOLAd+aYy5LeDY9cA/ACnA08aYv7fLbwS+BxyxT/2JMebnY623mvr8iWlbu/u5dvGMmLxmTpoTh8R+MsWpFtXIw9FnznCRm+FkU11z1H8m/jx/2qJS4QprHZWIFAOfBcoCrzHGfGqEy3qB1caYTjvN0isi8hfgDmNMu33fe4HbgO8MubYH+AZwlv3w18ONFYzOM8Y0icgjInK5MWaDfcpjgUFNqWD8+f4g+tPS/RwOITcj9tkp2nusMbHR1m45UxxcMM8dk4W/je09uDKcZKalRP211NQQ7jqqJ4A8YD3wdMAjJGPxt5RS7YcJCFICZALDluobY7qMMa9gBaxA5cAeY0yT/f164Low34NSABRkWS0qEVhRHrvtLax8f7Hv+kt3OshIHT0orKp0c8DTzeET3VGtU2N7jyajVWMSbmaKLGPMV8d6cxFJAbYClcBPjTGv2uUPA1cD7wJ3juGWtcAZIlIGHAbeD6QFHL9ORC7G6lK8wxhzaKx1VlNfmtNBXmYqswszyc9KG/2CCIlHvr9QW3wE429dbqxt5vrlc6JWp4b2Xu32U2MSbovqTyJy9VhvbozxGmOWYK3DOl9EzrLLbwJmADuB68dwvxPALcBjWLkH9wP++b5PAWXGmHOwWlqPBLuHiNwsIq+LyOtNTU3BTlFJ4KPLZ/OpVfNi+pquzNhv9RFqi49gqkpzKHNn8fDG/VHNSXi8vUcDlRqTcAPVF7GC1UkRaReRDhFpD/dFjDGtwAvAVQFlXqyAM6auO2PMU8aYC4wxK4HdwF673GOM8e/d8F/AeSGuf9AYs8wYs6y4uHgsL62mkLuvXsgHz50V09e0Nk+M7Tqq9p7+Uaem+4kIX1pTxa6GDv78zrGo1MfrMxzv6NXFvmpMwt2PKtcY4zDGZBpjXPb3rpGuEZFiEcm3n2cCa4DdIlJplwlwDbBrLBUWkRL7awFwK/Bz+/vpAaddi9VaUyphuOIwmWIsLSqAaxbPoKo0h3vX7WHA64t4fTxdvXh9RqemqzEZbcHvGcaYXSJybrDjxpg3Rrh8OlZWixSsgPhbrAkYL4uIC2t6+jasrjxE5FpgmTHmn+zv9wMuIE1E3g+sNca8C9wnIovt1/iWMWaP/fwL9j0GgBas1E9KJYx4TaaoLA5/J54Uh/DlK6r4/K/f4I9vHuHDy2ZHtD6NbVanhyakVWMx2mSKO7Gmpd8T5JgBVoe60BizHVga5NCqEOc/CTwZ8H1ZiPM+FqL8buDuUPVRKt5cman0Dvjo6feGNQsvEkba4iOUK8+cxtkz87hvw17et2Qmac6w91cdVaMu9lXjMOIn0BjzWfvrZUEeIYOUUmo4V4zTKPl8ZsTdfUMREe5cW8XhEyd57PXITpxt0MW+ahxG6/r74EjHjTF/iGx1lJq68gK2+ohF11dn3wDGjJ7nL5hLqopZXlbAT57by4fPmxWxFuDx9h4cAkU5sVsWoCa/0br+rhnhmAE0UCkVJldGbLf68G/SOJ5AZbWqFvDRBzfz6KYDfPbi8ojUqaG9h6KcdJwpketOVFPfaLn+bopVRZSa6mK91Uc4W3yMZEW5m4vmF/Hj5/by2v6xb6qYn5XKN68967RUSQ3tvZqVQo1ZuJkpEJH3AGcCg58yY8y3olEppaaiWGdQD2fTxNHc/TcL+doftnOwZWxplYyBZ9/toLw4h89fUjFYfry9h1kFujm4Gptwk9L+DGvr+cuw1i19CNgSxXopNeXkxXg7+vYwt/gYyaIZLp687cJxXfvJX2zhZy/W8bcXzCHXbtU1tPewrKxg3PVRySncjuJqY8wNwAl7y4+VQGQXWCg1xfm74PxjR9Hm72IcbYuPaLlr7QJau/t56JV9APT0e2nt7qc0V7v+1NiEG6j8Wcy7RWQG1qLa2CZKU2qSS3M6yExNid1kigi0qCbi7Fl5XHlmKT9/eR8nuvo47t/ZV8eo1BiFG6iestMhfQ94A9gH/G/UaqXUFGXl+4tdoHIIZKfFp0UFcOfaBXT1DfCzl+po7NA1VGp8wv0E7wK8xpjfi8gi4Fzg/6JXLaWmplhmUPcnpHU4JCavF0xVaS7vWzyDR2r2D3b5aVYKNVbhtqi+YYzpEJELgSuAXwL3R61WSk1RVr6/2E1Pj1e3X6Avrami32u4b8NeQAOVGrtwA5XX/voe4GfGmCc4fcNCpVQYYplBvf1k/7jXUEVSWVE2H1k2a3C34XhN7lCTV7iB6oiIPAB8BPiziKSP4VqllC2Wu/wmSosK4LbV80lLcTAtLwNrhx+lwhfunzYfwdr08PvGmFZ776evRK9aSk1NrhhPpkiULBAz8zP5+tVn0N3vHf1kpYYIK1AZY7oJyOtnjDkGRGcLUKWmMFdmKh09A3h9hpQoT3Jo7xn7Fh/RdOMqXdGixke775SKIX/g6IzBlvRtJ8Pfhl6pRKaBSqkYilUG9Z5+L30DvoSYTKHURGmgUiqGYpXvLxJ5/pRKFBqolIqhvBhlUB/c4kMDlZoCNFApFUOx2uojElt8KJUoNFApFUOnNk+MTYtKA5WaCjRQKRVDE21ReTp7+drvt3Oiq2/E8wa3+MjQLBBq8tNApVQMZaelkOKQcU+m2Fzfwm9eO8R/vlA74nnaolJTiQYqpWJIRHBljD+DuqfL2tPpV5sO0NjeE/K8dp1MoaYQDVRKxZiV7298C36bO/sQAZ8x/Pi5vSHPazvZT1ZaCqkp+l9cTX76KVYqxqytPsbXomru7KUwK43rl8/mN1sOcailO+h5iZSQVqmJ0kClVIy5JpBB3dPZizsnjdsum0+KQwb3eBqqvScxtvhQKhI0UCkVYxPJoO7p7MOdnc60vAw+sWIuf3jjMLXHO4edpy0qNZVooFIqxlwZ4+/683T14c6x9iy95dIKMlJT+MH6PcPOaz85oBMp1JShgUqpGPNvnmiMGfO1zZ29FOWkA+DOSedTq+bx9PZj7Djadtp5VuZ0XUOlpgb9JCsVY3mZqfR7DT39PjLTUsK+rnfAS0fPAO7stMGyz15czq827edzj26lzJ09WN7Y3qNdf2rK0BaVUjHmb+mMdUJFi52Nwm23qMAKev98zZmUujI42e8dfCydk88VC0sjV2ml4khbVErFWOBWH2PZKt7TaQWqopy008qvO28W1503K3IVVCrBaItKqRjzTxsfa4uqqdPKShHYolIqGWigUirGxptBPVSLSqmpTgOVUjE23gzqHm1RqSQVtUAlIhkiskVEtonIDhH5pl3+kF22XUQeF5GcINe6ReR5EekUkZ8MOXa9fe0OEfluQHm6iDwmIrUi8qqIlEXrvSk1EePd5dfT1Ue600H2GGYKKjUVRLNF1QusNsYsBpYAV4nICuAOY8xiY8w5wEHgtiDX9gDfAO4KLBQRN/A94HJjzJlAqYhcbh/+NHDCGFMJ/AD4j2i8KaUmyr9HVPsYE9P611CJSDSqpVTCilqgMhZ/bpdU+2GMMe0AYv1vywSGrXo0xnQZY17BCliByoE9xpgm+/v1wHX28/cBj9jPHwcuF/0frRKQM8VqFY296+9UVgqlkklUx6hEJEVE3gKOA+uMMa/a5Q8DDcAZwI/HcMta4AwRKRMRJ/B+YLZ9bCZwCMAYMwC0Ae6IvBGlIixvHPn+PF29py32VSpZRDVQGWO8xpglwCzgfBE5yy6/CZgB7ASuH8P9TgC3AI8BLwP7AX//SbDW07DWmojcLCKvi8jrTU1NQS5RKvrGk0Hd09k3mD5JqWQSk1l/xphW4AXgqoAyL1bAuS7EZaHu9ZQx5gJjzEpgN+Df5+AwduvKbm3lAS1Brn/QGLPMGLOsuLh4HO9GqYkba6AyxthdfxqoVPKJ5qy/YhHJt59nAmuA3SJSaZcJcA2wa4z3LbG/FgC3Aj+3Dz0JfNJ+/iHgOTOerJ9KxcBYN09s7xmgz+vTNVQqKUUzhdJ04BERScEKiL8FngZeFhEXVlfdNqyuPETkWmCZMeaf7O/3Ay4gTUTeD6w1xrwL3Ccii+3X+JYxxr/HwUPAoyJSi9WS+mgU35tSEzLWrT5OraHSQKWST9QClTFmO7A0yKFVIc5/EqtV5P++LMR5HwtR3gN8eMwVVSoOrMkU4U9P9/gT0mZr159KPpqZQqk4cGU66ewdYMDrC+t8bVGpZKaBSqk48Gen6AizVdU8mOdPW1Qq+WigUioOxppB3Z+QtlDXUakkpIFKqTgYa74/T1cv+VmppKbof1mVfPRTr1QcFNpjTZ6u3rDO93T2aVYKlbQ0UCkVB9Nc1s6+je3hBaqmzl5d7KuSlgYqpeKgODcdEWhoG5p3OThPZ68u9lVJSwOVUnGQmuLAnZ1OY3uYgaqrT9dQqaSlgUqpOCl1hReo+r0+Wrv7dQ2VSloaqJSKk2muDBrCGKM64c9KoWNUKklpoFIqTkpcGRwPo0XlX+xbrC0qlaQ0UCkVJ9NcGXi6+ugd8I54nn8Ku7aoVLLSQKVUnJS6rMDT1DFy958/K4Wuo1LJSgOVUnFSmudfSzVy919zp7aoVHLTQKVUnPgX/Ta0jdyiau7sIzVFcGVEc/s4pRKXBiql4qTUFV6LytPZizs7HWtTbKWSjwYqpeKkICuVtBTH6IGqq0/XUKmkpoFKqTgREUrCWPTr0Tx/KslpoFIqjqxFv6NNpujTPH8qqWmgUiqOSl0ZHB8hO4UxBk9Xr+7sq5KaBiql4qjUblEZY4Ie7+7z0tPv0zVUKqlpoFIqjkpd6XT3eensHQh6fHCxr7aoVBLTQKVUHE0bZdFv0+BiX21RqeSlgUqpOCrJHXnRr8cOVEW6F5VKYhqolIqj0VpUnsEtPrRFpZKXBiql4sifmDbUFHV/i6pQJ1OoJKaBSqk4ykpzkpvhDLkvVXNnH7kZTjJSU2JcM6UShwYqpeJspEW/nq4+XUOlkp4GKqXirNSVQWOIRb9WQlrt9lPJTQOVUnFmBapQY1SakFYpDVRKxVmpK53jHb14fcOzUzRrQlqlNFApFW/T8jLw+qycfoGOtJ7E09VHRXFOnGqmVGLQQKVUnPkX/TYOWfRbU9sMwKpKd8zrpFQi0UClVJyFWvS7qc6DOzuNqpLceFRLqYShgUqpOAu26NcYw8a6ZlZWuHE4dAt6ldw0UCkVZ8U56TiE0xb91jd30djeS3VFURxrplRiiFqgEpEMEdkiIttEZIeIfNMuf8gu2y4ij4vIsJFiEXGLyPMi0ikiPxly7GMi8rZ9/V9FpMgu/xcROSIib9mPq6P13pSKJGeKg6Kc9NNaVDV1HkDHp5SC6LaoeoHVxpjFwBLgKhFZAdxhjFlsjDkHOAjcFuTaHuAbwF2BhSLiBO4DLrOv3z7k+h8YY5bYjz9H/i0pFR1DF/3W1DYzMz+TOYVZcayVUokhaoHKWDrtb1PthzHGtAOIiACZwLDFI8aYLmPMK1gBK5DYj2z7ehdwNEpvQamYCVz06/MZNtV7WFnhxvqYK5XcojpGJSIpIvIWcBxYZ4x51S5/GGgAzgB+HO79jDH9wC3A21gBahHwUMApt9ldgr8QkYIIvQ2loq7Udarrb2dDO63d/drtp5QtqoHKGOM1xiwBZgHni8hZdvlNwAxgJ3B9uPcTkVSsQLXUvn47cLd9+H6gAqub8RhwT4h73Cwir4vI601NTeN6X0pF2jRXBq3d/fT0e6mptcanVpbrRAqlIEaz/owxrcALwFUBZV7gMeC6MdxqiX1tnTHGAL8Fqu2yRjsw+oD/As4PUZcHjTHLjDHLiouLx/N2lIq4Upe1lup4ey81dc2UF2cPrq9SKtlFc9ZfsYjk288zgTXAbhGptMsEuAbYNYbbHgEWiYg/wlyB1SpDRKYHnPcB4J2JvQOlYqfUDkqHW7vZsq+FVTotXalBzijeezrwiIikYAXE3wJPAy+LiAtrUsQ2rK48RORaYJkx5p/s7/djTZZIE5H3A2uNMe/a09xfEpF+4ABwo/163xWRJViTM/YDn4vie1MqovyLfp/d0UhXn5fqCh2fUsovaoHKGLMdayxpqFUhzn8SeDLg+7IQ5/0M+FmQ8k+Mq6JKJYBpdtffU9uOIgIryjVQKeWnmSmUSgB5mamkOx14uvpYNN1FgW6WqNQgDVRKJQARGZxQod1+Sp1OA5VSCcLf/VddqRMplAqkgUqpBFHiSsfpEJaXFca7KkollGjO+lNKjcENK8u4YF4hOen631KpQPo/QqkEcf68Qs6fp60ppYbSrj+llFIJTQOVUkqphKaBSimlVELTQKWUUiqhaaBSSimV0DRQKaWUSmgaqJRSSiU0DVRKKaUSmlgb5SYnEWnC2tMqlCKgOUbViaTJWm+YvHWfrPWGyVv3yVpvmPx1zzbGxGyL9KQOVKMRkdeNMcviXY+xmqz1hslb98lab5i8dZ+s9Qat+1hp159SSqmEpoFKKaVUQtNANbIH412BcZqs9YbJW/fJWm+YvHWfrPUGrfuY6BiVUkqphKYtKqWUUgltSgQqEfmFiBwXkXeGlH9YRHaIiE9EQs5SEZFCEVknInvtrwV2eYGI/FFEtovIFhE5K8T1/yYih0Skc0j5XBHZYF//gojMSqS6i0iWiDwtIrvs1/pOwLF0EXlMRGpF5FURKZsk9b5YRN4QkQER+VCI107Uun9ZRN61r98gInMnSb0/LyJvi8hbIvKKiCwKcv1E6x7yPBG52/6c7haRK0Ncf55dx1oR+ZGIyEg/k0lS9xFfP4Hr/T37c7Td/tzlh6rDIGPMpH8AFwPnAu8MKV8ILABeAJaNcP13ga/Zz78G/If9/HvAP9vPzwA2hLh+BTAd6BxS/jvgk/bz1cCjiVR3IAu4zH6eBrwM/I39/a3Az+znHwUemyT1LgPOAX4FfCjRPi+j1P0yIMt+fssk+pm7As67FvhrFH7mQc8DFgHbgHRgHlAHpAS5fguwEhDgLwF1D/ozmSR1H/H1E7jeawGn/fw/gv3Mh91rtBMmywPrF9Q7IY6N9g+yG5huP58O7LafPw1cGHBeHVA6wn2GBqodwCz7uQDtiVp3+5z7gM/az58BVtrPnViLEyXR6x1Q9ktCBKpEr7tdvhTYOAnr/THgL5H+mYc6D7gbuDvg+8HPbUDZdGDXkDo+MNLPZDLUPZzXT+R62+UfAP57tDpMia6/CCg1xhwDsL+W2OXbgA8CiMj5wFxgWPfdCLYB19nPPwDkiog7IjU+JSJ1t5vf1wAb7KKZwCH7vgNAGxDJuker3rEQi7p/Guuv0EiKWr1F5P+JSB1WC+ULEa73SAY/p7bDdtnQcw6HOCfUzyQWJlr3eIlkvT9FGJ9zDVQj+w5QICJvAbcDbwIDY7j+LuASEXkTuAQ4MsbrJyLsuouIE/hf4EfGmHp/cZBTTTQqOsRE6x1PEam7iPwdsAyrSy4WJlxvY8xPjTEVwFeBf4x+lU9VKUjZ0M9pvD7Lo5msdY9IvUXkH7A+Z/892gs6w67aFCIiD2N1rRw1xlwNNIrIdGPMMRGZDhwHMMa0AzfZ1wiwz36ExRhzlFN/qeYA1xlj2hKw7g8Ce40xPwwoOwzMBg7bv5zygJZJUO+Ii2XdRWQN8A/AJcaY3slS7wC/Ae6fSL1D1D0U/+fUbxZwNMg5s0KcE/RnMhExrHtExbLeIvJJ4L3A5cbuAxxJUraojDE3GWOWBPxjPAl80n7+SeAJsLo4RCTNLv8M8JL9nzosIlIkIv6f8d3ALxKt7iLybawg9KUhhwLv+yHguXA+UAlQ74iLVd1FZCnwAHCtMWbCvzBjWO/5Ad++B9gbhbqH8iTwUbFmqc4D5mMN4gfe6xjQISIr7EB8A/Z7J8TPZJLUPaJiVW8RuQqr5X2tMaY73MpN+gdWV8QxoB8rkn/anBqoOwz0Ao3AMyGud2P1t++1vxba5Svtsl3AH4CCENd/134dn/31X+zyD9nX7wF+DqQnUt2x/soxwE7gLfvxGftYBtasxVr7Q1g+Seq93H79LsAD7JhEP/P19uv6y5+cJPW+D2vi0FvA88CZUfiZhzwPqwVahzUx4m9CXL8MeMc+7yecSnYQ9GcySeo+4usncL1rsca4/J+jnwW7PvChmSmUUkoltKTs+lNKKTV5aKBSSimV0DRQKaWUSmgaqJRSSiU0DVRKKaUSmgYqpWLEXq90q/18hog8Hu86KTUZ6PR0pWJErK1S/mSMCbpdjFIquKRMoaRUnHwHqLBz6u0FFhpjzhKRG4H3AynAWcA9WFtpfAJrseXVxpgWEakAfgoUA91Y2ct3xf5tKBVb2vWnVOx8DagzxiwBvjLk2FnAx4HzgX8Duo0xS4FNWOlnwMqzd7sx5jyshMf/GZNaKxVn2qJSKjE8b4zpwMqP1gY8ZZe/DZxjJzWuBn5nb5QK1sZ1Sk15GqiUSgyBmdJ9Ad/7sP6fOoBWuzWmVFLRrj+lYqcDyB3PhcbKZr5PRD4M1nYcIrI4kpVTKlFpoFIqRowxHmCjiLzD+DZF/Fvg0yKyDStb+fsiWT+lEpVOT1dKKZXQtEWllFIqoWmgUkopldA0UCmllEpoGqiUUkolNA1USimlEpoGKqWUUglNA5VSSqmEpoFKKaVUQvv/SGzc182Ya08AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for col in data1.columns:\n",
    "    if col != 'Date':\n",
    "        fig = plt.figure()\n",
    "        plt.plot(time, data1[col])\n",
    "        plt.xlabel('time')\n",
    "        plt.ylabel(col)\n",
    "        fig.savefig('scripps_pier_%s.pdf' % col)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Plot all response variables together"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chl (ug/L)</th>\n",
       "      <th>pres (dbar)</th>\n",
       "      <th>sal (PSU)</th>\n",
       "      <th>temp (C)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:42</th>\n",
       "      <td>22.307</td>\n",
       "      <td>3.712</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:35</th>\n",
       "      <td>22.311</td>\n",
       "      <td>3.588</td>\n",
       "      <td>33.201</td>\n",
       "      <td>19.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:29</th>\n",
       "      <td>22.305</td>\n",
       "      <td>3.541</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:23</th>\n",
       "      <td>22.323</td>\n",
       "      <td>3.463</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11/10/15 1:17</th>\n",
       "      <td>22.316</td>\n",
       "      <td>3.471</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               chl (ug/L)  pres (dbar)  sal (PSU)  temp (C)\n",
       "Date                                                       \n",
       "11/10/15 1:42      22.307        3.712     33.199     19.95\n",
       "11/10/15 1:35      22.311        3.588     33.201     19.94\n",
       "11/10/15 1:29      22.305        3.541     33.200     19.95\n",
       "11/10/15 1:23      22.323        3.463     33.200     19.95\n",
       "11/10/15 1:17      22.316        3.471     33.199     19.95"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# index is the date/time as a string (object)\n",
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "# convert the index to a datetime index\n",
    "data2.index = pd.to_datetime(data2.index)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chl (ug/L)</th>\n",
       "      <th>pres (dbar)</th>\n",
       "      <th>sal (PSU)</th>\n",
       "      <th>temp (C)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:42:00</th>\n",
       "      <td>22.307</td>\n",
       "      <td>3.712</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:35:00</th>\n",
       "      <td>22.311</td>\n",
       "      <td>3.588</td>\n",
       "      <td>33.201</td>\n",
       "      <td>19.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:29:00</th>\n",
       "      <td>22.305</td>\n",
       "      <td>3.541</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:23:00</th>\n",
       "      <td>22.323</td>\n",
       "      <td>3.463</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:17:00</th>\n",
       "      <td>22.316</td>\n",
       "      <td>3.471</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     chl (ug/L)  pres (dbar)  sal (PSU)  temp (C)\n",
       "Date                                                             \n",
       "2015-11-10 01:42:00      22.307        3.712     33.199     19.95\n",
       "2015-11-10 01:35:00      22.311        3.588     33.201     19.94\n",
       "2015-11-10 01:29:00      22.305        3.541     33.200     19.95\n",
       "2015-11-10 01:23:00      22.323        3.463     33.200     19.95\n",
       "2015-11-10 01:17:00      22.316        3.471     33.199     19.95"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# now we see the index has changed to a standard datetime format\n",
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2015-11-10 01:42:00')"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# closer look at the first item in the index\n",
    "data2.index[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime.date(2015, 11, 10)"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# timestamp has a method date() to get the date\n",
    "data2.index[0].date()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chl (ug/L)</th>\n",
       "      <th>pres (dbar)</th>\n",
       "      <th>sal (PSU)</th>\n",
       "      <th>temp (C)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:42:00</th>\n",
       "      <td>22.307</td>\n",
       "      <td>3.712</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:35:00</th>\n",
       "      <td>22.311</td>\n",
       "      <td>3.588</td>\n",
       "      <td>33.201</td>\n",
       "      <td>19.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:29:00</th>\n",
       "      <td>22.305</td>\n",
       "      <td>3.541</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:23:00</th>\n",
       "      <td>22.323</td>\n",
       "      <td>3.463</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:17:00</th>\n",
       "      <td>22.316</td>\n",
       "      <td>3.471</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:11:00</th>\n",
       "      <td>22.315</td>\n",
       "      <td>3.476</td>\n",
       "      <td>33.198</td>\n",
       "      <td>19.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 01:05:00</th>\n",
       "      <td>22.310</td>\n",
       "      <td>3.448</td>\n",
       "      <td>33.199</td>\n",
       "      <td>19.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:59:00</th>\n",
       "      <td>22.316</td>\n",
       "      <td>3.377</td>\n",
       "      <td>33.200</td>\n",
       "      <td>19.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:53:00</th>\n",
       "      <td>22.311</td>\n",
       "      <td>3.338</td>\n",
       "      <td>33.200</td>\n",
       "      <td>20.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:47:00</th>\n",
       "      <td>22.322</td>\n",
       "      <td>3.325</td>\n",
       "      <td>33.201</td>\n",
       "      <td>20.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:41:00</th>\n",
       "      <td>22.311</td>\n",
       "      <td>3.344</td>\n",
       "      <td>33.200</td>\n",
       "      <td>20.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:35:00</th>\n",
       "      <td>22.311</td>\n",
       "      <td>3.217</td>\n",
       "      <td>33.201</td>\n",
       "      <td>20.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:29:00</th>\n",
       "      <td>22.307</td>\n",
       "      <td>3.265</td>\n",
       "      <td>33.199</td>\n",
       "      <td>20.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:23:00</th>\n",
       "      <td>22.320</td>\n",
       "      <td>3.220</td>\n",
       "      <td>33.197</td>\n",
       "      <td>20.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:17:00</th>\n",
       "      <td>22.322</td>\n",
       "      <td>3.211</td>\n",
       "      <td>33.199</td>\n",
       "      <td>20.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:11:00</th>\n",
       "      <td>22.323</td>\n",
       "      <td>3.134</td>\n",
       "      <td>33.197</td>\n",
       "      <td>20.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-10 00:05:00</th>\n",
       "      <td>22.315</td>\n",
       "      <td>3.018</td>\n",
       "      <td>33.197</td>\n",
       "      <td>20.09</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     chl (ug/L)  pres (dbar)  sal (PSU)  temp (C)\n",
       "Date                                                             \n",
       "2015-11-10 01:42:00      22.307        3.712     33.199     19.95\n",
       "2015-11-10 01:35:00      22.311        3.588     33.201     19.94\n",
       "2015-11-10 01:29:00      22.305        3.541     33.200     19.95\n",
       "2015-11-10 01:23:00      22.323        3.463     33.200     19.95\n",
       "2015-11-10 01:17:00      22.316        3.471     33.199     19.95\n",
       "2015-11-10 01:11:00      22.315        3.476     33.198     19.95\n",
       "2015-11-10 01:05:00      22.310        3.448     33.199     19.96\n",
       "2015-11-10 00:59:00      22.316        3.377     33.200     19.99\n",
       "2015-11-10 00:53:00      22.311        3.338     33.200     20.00\n",
       "2015-11-10 00:47:00      22.322        3.325     33.201     20.01\n",
       "2015-11-10 00:41:00      22.311        3.344     33.200     20.04\n",
       "2015-11-10 00:35:00      22.311        3.217     33.201     20.05\n",
       "2015-11-10 00:29:00      22.307        3.265     33.199     20.08\n",
       "2015-11-10 00:23:00      22.320        3.220     33.197     20.09\n",
       "2015-11-10 00:17:00      22.322        3.211     33.199     20.08\n",
       "2015-11-10 00:11:00      22.323        3.134     33.197     20.09\n",
       "2015-11-10 00:05:00      22.315        3.018     33.197     20.09"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get all the rows with date 2015-11-10\n",
    "data2.loc['2015-11-10']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>chl (ug/L)</th>\n",
       "      <th>pres (dbar)</th>\n",
       "      <th>sal (PSU)</th>\n",
       "      <th>temp (C)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:59:00</th>\n",
       "      <td>22.330</td>\n",
       "      <td>2.851</td>\n",
       "      <td>33.197</td>\n",
       "      <td>20.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:53:00</th>\n",
       "      <td>22.315</td>\n",
       "      <td>2.769</td>\n",
       "      <td>33.199</td>\n",
       "      <td>20.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:47:00</th>\n",
       "      <td>22.318</td>\n",
       "      <td>2.774</td>\n",
       "      <td>33.191</td>\n",
       "      <td>20.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:41:00</th>\n",
       "      <td>22.318</td>\n",
       "      <td>2.875</td>\n",
       "      <td>33.191</td>\n",
       "      <td>20.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:35:00</th>\n",
       "      <td>22.320</td>\n",
       "      <td>2.752</td>\n",
       "      <td>33.192</td>\n",
       "      <td>20.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:29:00</th>\n",
       "      <td>22.319</td>\n",
       "      <td>2.814</td>\n",
       "      <td>33.186</td>\n",
       "      <td>20.16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:23:00</th>\n",
       "      <td>22.328</td>\n",
       "      <td>2.781</td>\n",
       "      <td>33.184</td>\n",
       "      <td>20.13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:17:00</th>\n",
       "      <td>22.310</td>\n",
       "      <td>2.794</td>\n",
       "      <td>33.189</td>\n",
       "      <td>20.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:11:00</th>\n",
       "      <td>22.320</td>\n",
       "      <td>2.776</td>\n",
       "      <td>33.197</td>\n",
       "      <td>20.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-11-09 22:05:00</th>\n",
       "      <td>22.325</td>\n",
       "      <td>2.770</td>\n",
       "      <td>33.199</td>\n",
       "      <td>20.07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     chl (ug/L)  pres (dbar)  sal (PSU)  temp (C)\n",
       "Date                                                             \n",
       "2015-11-09 22:59:00      22.330        2.851     33.197     20.18\n",
       "2015-11-09 22:53:00      22.315        2.769     33.199     20.18\n",
       "2015-11-09 22:47:00      22.318        2.774     33.191     20.19\n",
       "2015-11-09 22:41:00      22.318        2.875     33.191     20.15\n",
       "2015-11-09 22:35:00      22.320        2.752     33.192     20.15\n",
       "2015-11-09 22:29:00      22.319        2.814     33.186     20.16\n",
       "2015-11-09 22:23:00      22.328        2.781     33.184     20.13\n",
       "2015-11-09 22:17:00      22.310        2.794     33.189     20.11\n",
       "2015-11-09 22:11:00      22.320        2.776     33.197     20.08\n",
       "2015-11-09 22:05:00      22.325        2.770     33.199     20.07"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get all the rows with hour 22 (10pm-11pm)\n",
    "data2[data2.index.hour == 22]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x126d15b70>"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEJCAYAAAB7UTvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3XmcHFW5//HP0z1r9hVICGQiJJBAFiCSq0ESRAENXgNXUBEvixKMonIlIOj1xeaCrBc3BIRfEIMoIgJBkS2IQQETSEIwLEEihIQwZIEss3X38/vjVNf0TGYmM5mZ7unk+0761dNd1VVPVVfVc86pqtPm7oiIiAAkCh2AiIj0HEoKIiISU1IQEZGYkoKIiMSUFEREJKakICIiMSUFERGJKSmIiEhMSUFERGIlhQ6go4YMGeJVVVWFDkNEpGgsXrz4HXcf2p5xiy4pVFVVsWjRokKHISJSNMzs3+0dV81HIiISU1IQEZGYkoKIiMSK7pyCiBSfhoYGVq9eTW1tbaFD2aVVVFQwYsQISktLd3oaSgoi0u1Wr15N3759qaqqwswKHc4uyd1Zv349q1evZtSoUTs9HTUfiUi3q62tZfDgwUoI3cjMGDx4cKdrY7tNTeHDv/0w79a9i5lh2HYbZ/NfoGtp482O4zjuTvZf+N/4ecOyf0QfbDo8Hsdyxs2dT3bcFj7X07QUf87AppovSryaLH7Orvfs3wlLkCARvjezJt9Bi9Nsp+znW1q/0RYCBglLkLQkhoXnKI44pij23Om4OxkyYRuJ/m5J83XnOBnPkPEMaU+T8cx242bjiuPMWV9Nnrvw4Nt8edpady0xjO+P+T5s6LKQdksJS3DAoAPaHKcrvvfdJimcdMBJ1KRq4gNtduPO3Yma7+BtjZM9oBvhwNVcdh7Nd9rmw3Onn6u1zxWL3HWYu6G2tI6zr5snw9yDUfZgmfsddNU6yo0vt3CQnafjpD2Ne+NzbnytJbWEJeJtY0eFkKykJePPJSzRJBGGVdN028ydVncUILLfX3Z5muwD7PgglI2tsqSSARUDOjz/lpJua+MUQmtxdUdMeVvOOPsXyeOwww5zESku//znPwsdQotOO+00v+uuu7Z7/7XXXvODDjqoxc+sWbPGZ8yY0an5rlmzxj/60Y+2Op/zzjvPH3300Z2adkvrGljk7TzG6pyCiEgHXHvttZx11lmdmsaDDz7Iscce2+rwr371q1xxxRWdmsfO2m2aj0SkZ7j0/hf455r3unSa44b34+JPHNTmOL/85S+5+uqrMTMmTJjA7bffDsATTzzBtddey1tvvcWVV17Jpz71qTanc/fdd/Pd734XgLlz57Jo0SJ+8pOfAHD88cczZ84cpk+fzi233MIPf/hDhg8fzujRoykvL4/He/DBB7n44otbncfIkSNZv349b731FnvttVe710NXUE1BRHZ5L7zwAt/73vd47LHHWLp0Kddff308bO3atSxcuJD58+dz4YUXtjmd1157jYEDB1JeXt7meGvWrOHyyy/nqaee4uGHH+bFF1+Mh6XTaV566SXGjRvX5jQOPfRQnnzyyXYsXddSTUFE8mpHJfru8Nhjj/GpT32KIUOGADBo0KB42MyZM0kkEowbN45169a1OZ21a9cydOiOOxt95plnmDZtWjyfk046iZdffhmAp59+milTpuxwGnvssQdr1qzZ4XhdTTUFEdnlebOr4HLllvq9lavCsiorK5vcB1BSUkIm03jpcHZYW9P505/+xHHHHbfDmGtra6msrNzheF1NSUFEdnlHH300v/3tb1m/fj0AGzbs3E0TY8aMYdWqVfHrqqoqlixZQiaT4Y033uCZZ54B4PDDD+cvf/kLGzduJJVKcffdd8efefTRRzn66KN3OK+XX36Zgw8+eKfi7Aw1H4nILu+ggw7i29/+NtOmTSOZTHLIIYcwd+7cDk+nd+/e7LfffqxcuZL999+fqVOnMmrUKMaPH8/BBx/MoYceCsDee+/Nt771LaZMmcLw4cMZN24c/fv3p7q6moqKCvr16xdP86WXXmLEiBHx6+uuu46ZM2eycuVKJk+e3Oll7yjbUXWpp5k8ebLrR3ZEisuKFSsYO3ZsocPoEvfccw+LFy+Or0BqzZYtW+jTpw+pVIoTTjiBM888k61bt7J69eodntC+5557ePbZZ7n88ss7HF9L69rMFrt7uzKMagoiIh1wwgknxM1Qbbnkkkt45JFHqK2t5ZhjjmHmzJnt7oYilUpx3nnndTbUnaKkICLSQV/84hd3OM7VV1+909M/6aSTdvqznaUTzSIiElNSEBGRmJKCiIjE8pIUzKzCzJ4xs6Vm9oKZXRq9P8rMnjazV8zsN2ZWlo94RESkZfmqKdQBH3b3icAk4Dgz+w/gh8B17j4a2Ah8IU/xiIh0ubVr13L88ce3OGz69OlkL6fv06dPp+Yzf/78NjvU64y8JIWoS+8t0cvS6OHAh4HfRe/fBszMRzwiIi1Jp9Od+nxXdKu9I6lUihkzZnDfffexbdu2Lp9+3i5JNbMksBjYH/gp8Cqwyd1T0Sirgb1b+ewsYBbAvvvu2/3Bikj3+dOF8NbzXTvNvcbDx1r//YFVq1Zx3HHHMWXKFJ577jnGjBnDL3/5S3r16kVVVRVnnnkmDz30EOeccw7vf//7+cpXvkJ1dTW9evXi5ptv5sADD+Suu+7i0ksvJZlM0r9/f5544ont5pPbrXZNTQ1nnHEG//znPxk7diw1NTVNxj3vvPNYsGABAwcO5M4772To0KHcfPPN3HTTTdTX17P//vtz++2306tXL04//XQGDRrEc889x6GHHso111zD9OnTmT9/PieffHKXrsq8nWh297S7TwJGAIcDLd3e2OLt1e5+k7tPdvfJ7emhUESkuZdeeolZs2axbNky+vXrx89+9rN4WEVFBQsXLuQzn/kMs2bN4sc//jGLFy/m6quv5stf/jIAl112GX/+859ZunQp991333bTb96t9g033ECvXr1YtmwZ3/72t1m8eHE87tatWzn00EN59tlnmTZtGpdeeikAJ554Iv/4xz9YunQpY8eO5ZZbbok/8/LLL/PII49wzTXXADB58mT++te/dvl6yvvNa+6+ycweB/4DGGBmJVFtYQSQ/35iRSS/2ijRd6d99tmHqVOnAnDqqafyox/9iDlz5gDw6U9/GghdU/ztb39rcvNYXV0dAFOnTuX000/n5JNP5sQTT9xu+s271X7iiSf42te+BsCECROYMGFCPCyRSMTzPPXUU+PpLV++nP/93/9l06ZNbNmypcmvs5100kkkk8n4dXd1rZ2XpGBmQ4GGKCFUAh8hnGReAHwKuBM4Dbg3H/GIyO6neRcTua979+4NQCaTYcCAASxZsmS7z//85z/n6aef5oEHHmDSpEksWbKEwYMHx8Obd6vd0jx3FNvpp5/OH/7wByZOnMjcuXN5/PHHt4sxq7u61s5X89EwYIGZLQP+ATzs7vOBbwLfMLOVwGDgljamISKy015//XX+/ve/A/DrX/+aI444Yrtx+vXrx6hRo7jrrruA8LsIS5cuBeDVV19lypQpXHbZZQwZMoQ33nijyWebd6t95JFHMm/ePCDUAJYtWxYPy2Qy/O534RqbO+64I45l8+bNDBs2jIaGhvizremurrXzUlNw92XAIS28/y/C+QURkW41duxYbrvtNs4++2xGjx7N7NmzWxxv3rx5zJ49m+9+97s0NDTwmc98hokTJ3L++efzyiuv4O4cffTRTJw4scnnmnerPXv2bM444wwmTJjApEmTOPzww5uM+8ILL3DYYYfRv39/fvOb3wBw+eWXM2XKFEaOHMn48ePZvHlzq8uzYMECfvCDH3TBmmlKXWeLSLcrdNfZq1at4vjjj2f58uXdOp/2dqvdWevWreOUU07h0Ucf3W6Yus4WEekh2tutdme9/vrr8VVIXU1JQUR2eVVVVd1eS8hqT7fanfX+97+/26atDvFERCSmpCAiIjElBRERiSkpiIhITElBRKSZ008/Pb65rLlzzz037gxv+vTpHHDAAUycOJGpU6fy0ksvAaFr60MOOYSJEycybtw4brzxxlanm+1Gu7q6muOOO667FqndlBRERNppw4YNPPXUUxx55JHxe/PmzWPp0qWcdtppnH/++TQ0NDBr1izuv/9+li5dynPPPcf06dN3OO2hQ4cybNgwnnzyyW5cgh3TJakiklc/fOaHvLjhxS6d5oGDDuSbh3+z1eFbt27l5JNPZvXq1aTTab7zne/w6U9/mssuu4z777+fmpoaPvjBD3LjjTe22V/R7373u1ZL80ceeST/93//x+bNm0mlUnG/SOXl5RxwwAHtWo6ZM2cyb968uOO+QlBNQUR2eQ8++CDDhw9n6dKlLF++PD6wn3POOfzjH/9g+fLl1NTUMH/+/Dan8+STT3LYYYe1OOz+++9n/PjxDBo0iP/8z/9k5MiRfPazn2XevHlkMpl2xdld3WF3hGoKIpJXbZXou8v48eOZM2cO3/zmNzn++OP50Ic+BIT+g6688kq2bdvGhg0bOOigg/jEJz7R6nSad48N8LnPfY7Kykqqqqr48Y9/DMAvfvELnn/+eR555BGuvvpqHn74YebOndtiLST3ve7qDrsjlBREZJc3ZswYFi9ezB//+EcuuugijjnmGC644AK+/OUvs2jRIvbZZx8uueSS7bq+bq6l7rHnzZvH5Mnbdys0fvx4xo8fz+c//3lGjRrF3LlzGTx4MBs3bozH2bBhA0OGDIlfd1d32B2h5iMR2eWtWbOGXr16ceqppzJnzhyeffbZ+OA+ZMgQtmzZ0urVRrnGjh3LypUr2xxny5YtTX4HYcmSJYwcORIIVyv95je/ob6+HoC5c+dy1FFHxeN2V3fYHaGagojs8p5//nnOP/98EokEpaWl3HDDDQwYMICzzjqL8ePHU1VV1a7+hGbMmMGNN97YZv9G7s6VV17J2WefTWVlJb1792bu3LkAHH/88SxevJjDDjuMZDLJfvvtx89//vP4swsWLGDGjBmdXt7OUNfZItLtCt11dlc64ogjmD9/PgMGDOjyaR955JHce++9DBw4cKen0dmus9V8JCLSAddccw2vv/56l0+3urqab3zjG51KCF1BzUciIh0wZcqUbpnu0KFDmTlzZrdMuyNUUxARkZiSgoiIxJQUREQklpekYGb7mNkCM1thZi+Y2dej9y8xszfNbEn0+Hg+4hERkZblq6aQAs5z97HAfwBfMbNx0bDr3H1S9PhjnuIRkd3Ipk2b+NnPfpb3+dbU1DBt2jTS6TQQbk77+Mc/zv7778/YsWM5+eSTWbduHc8//zynn3563uNrSV6Sgruvdfdno783AyuAvfMxbxGRQiWFW2+9lRNPPJFkMkltbS0zZsxg9uzZrFy5khUrVjB79myqq6sZP348q1ev7pZLXTsq75ekmlkVcAjwNDAVOMfM/htYRKhNbGzhM7OAWQD77rtv3mIVka731ve/T92Kru06u3zsgez1rW+1OvzCCy/k1VdfZdKkSXz0ox/lqquu4qqrruK3v/0tdXV1nHDCCVx66aWsWrWK4447jiOOOIKnnnqKiRMncsYZZ3DxxRfz9ttvM2/ePA4//HAuueQSXn31Vd58803eeOMNLrjgAs4666zt5jtv3jzuuOMOAO644w4+8IEPNOlwL7eLi0984hPceeedXHDBBV24ZjouryeazawPcDdwrru/B9wA7AdMAtYC17T0OXe/yd0nu/vk5j0UiojsyBVXXMF+++3HkiVLuOqqq3jooYd45ZVXeOaZZ1iyZAmLFy+Of01t5cqVfP3rX2fZsmW8+OKL3HHHHSxcuJCrr76a73//+/E0ly1bxgMPPMDf//53Lrvssu16N62vr+df//oXVVVVACxfvrzVbrehZ3SbDXmsKZhZKSEhzHP33wO4+7qc4TcDbXdmLiJFr60Sfb489NBD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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# use the built-in plot() method of a pandas dataframe\n",
    "plt.figure()\n",
    "data2.plot()\n",
    "plt.legend(loc='best')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### P.S. About that name..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The name \"Pandas\" actually has nothing to do with the animal. It is derived from the term \"panel data\", an econometrics term for multidimensional structured data sets."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![pandas](http://wdy.h-cdn.co/assets/16/05/980x490/landscape-1454612525-baby-pandas.jpg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
